Python数据类型(一):整数、浮点数、复数、布尔型
(c + dj)*(c - dj) = c² - (dj)² = c² + d² # 因为 (dj)² = d² * j² = -d²,所以减号变加号。这四种数字类型中,学习中最让我费解的是复数(complex),它采用实部+虚部的组合的方式形成一个值,我的疑问是复数的作用和应用场景是什么?凡事不明问AI,说实话AI真是个好东西,不管是学习还是帮助写代码都是很好的帮手,建议大家学习的时候要结合AI
一、基本数据类型
python中定义变量虽然不用定义数据类型,但不代表python没有数据类型,数据类型是一类值,每个值只属于一个数据类型。
python中常见的数据类型包括:
- 数字类型:整数(int)、浮点数(float)、复数(complex)、布尔(bool)
- 序列类型:字符串(str)、列表(list)、元组(tuple)
- 集合类型:集合(set)、冻结集合(frozenset)
- 映射类型:字典(dict)
- 二进制类型:字节(bytes)、字节数组(bytearray)、内存视图(memoryview)
今天我们学习数字类型。

二、数字类型:整数、浮点数、复数、布尔型
| 数据类型 | 说明 | 例子 |
| 整数(int) | 值是整数 | -2,1,3,5 |
| 浮点数(float) | 值是小数 | 3.14,2.68,12.911 |
| 复数(complex) | 通过x + yj形式表示实部与虚部组合的值 |
3+4j |
| 布尔(bool) | 只有两种值:True和False | true,false |
这四种数字类型中,学习中最让我费解的是复数(complex),它采用实部+虚部的组合的方式形成一个值,我的疑问是复数的作用和应用场景是什么?
AI给我的答案是:Python内置的复数类型为科学计算和工程应用提供了高效支持,通过x + yj形式表示实部与虚部的组合,并支持多种内置属性和运算方法。应用场景主要在信号处理、控制系统、电气工程、量子物理、工程计算等领域。
原谅我这几个领域我都没怎么接触过,自小到大数学底子也不是很好,希望在后续学习中能够成长到需要编写使用复数的程序。(立个flag)
言归正传,写点代码加深印象。
程序一:整数除以整数得到浮点数
#定义1个整数
a_int = 4
print(a_int/2)
输出的结果是:2.0

这就有意思了,一个整数除以另一个整数,按照常理得数应该是整数,但实际得出的结果是浮点数,看来又有问题需要解决了。
答案其实我们可以猜到,在python中,将任意两个数相除,结果总是浮点数,即便这除数和被除数都是整数。
程序二:结合运算符的计算
#定义两个数字类型变量
a_int = 20
b_float = 5.0
#加、减、乘、除
print(a_int+b_float)
print(a_int-b_float)
print(a_int*b_float)
print(a_int/b_float)
# ** 表示幂运算
print(a_int**b_float)
运算输出的结果都是浮点数,可以看出只要和浮点数进行了运算,最后的结果都会变成浮点数。

程序三:复数的加减乘除
a=3+4j
b=4+3j
print(a+b)
print(a-b)
print(a*b)
print(a/b)
得出的结果加法和减法很好理解,但是到了乘法和除法就有点弄不清运算逻辑了。

凡事不明问AI,说实话AI真是个好东西,不管是学习还是帮助写代码都是很好的帮手,建议大家学习的时候要结合AI一起学习,效果成倍提升。
(1)复数乘法计算原理:
给定两个复数:
z1 = a + bj
z2 = c + dj
那么它们的乘积为:
z1 * z2 = (a + bj) * (c + dj) = (ac - bd) + (ad + bc)j
记忆方法:按照多项式乘法展开,注意 j² = -1。
示例:
z1 = 3 + 4j
z2 = 2 - 1j
# 手动计算:
# (3+4j)*(2-1j) = 3*2 + 3*(-1j) + 4j*2 + 4j*(-1j)
# = 6 -3j +8j -4j²
# = 6 +5j -4*(-1) # 因为 j² = -1
# = 6 +5j +4
# = 10 +5j
# Python计算
result = z1 * z2
print(result) # 输出:(10+5j)
(2)复数除法计算原理:
复数除法需要用到共轭复数。给定两个复数:
z1 = a + bj
z2 = c + dj (c和d不同时为0)
那么 z1 / z2 = (a + bj) / (c + dj)
为了化简,分子分母同时乘以分母的共轭复数(c - dj):
z1 / z2 = [(a + bj) * (c - dj)] / [(c + dj) * (c - dj)]
分子展开:
(a + bj)*(c - dj) = (ac + bd) + (bc - ad)j
分母:
(c + dj)*(c - dj) = c² - (dj)² = c² + d² # 因为 (dj)² = d² * j² = -d²,所以减号变加号
所以:
z1 / z2 = [(ac + bd) + (bc - ad)j] / (c² + d²)
即:
实部 = (ac + bd) / (c² + d²)
虚部 = (bc - ad) / (c² + d²)
示例:
z1 = 3 + 4j
z2 = 2 - 1j
# 手动计算:
# 分子: (3+4j)*(2+1j) 注意分母的共轭是 2+1j
# = 3*2 + 3*1j + 4j*2 + 4j*1j
# = 6 +3j +8j +4j²
# = 6 +11j -4
# = 2 +11j
# 分母: (2-1j)*(2+1j) = 4 - (1j)² = 4 +1 = 5
# 所以结果为 (2 +11j)/5 = 0.4 + 2.2j
# Python计算
result = z1 / z2
print(result) # 输出:(0.4+2.2j)
过于复杂了,得花点时间慢慢消化,没耐心的暂时跳过吧。
程序四:整数中的下划线
#可使用下划线将其中的位分组,使其更清晰易读中的下划线
#外国的千分数字法
foreign_number=14_000_000_000
#中国的万分数字法
local_number=140_0000_0000
print(f"外国以1000为分割写法:{foreign_number}")
print(f"中国以10000为分割写法:{local_number}")
在书写很大的数时,可使用下划线将其中的位分组,使其更清晰易读,这些下划线在打印时是不会打印的。
程序五:布尔数据类型
#定义两个数字
a_num = 5
b_num = 10
#两个数字是否相等,返回一个bool值
c_bool = a_num == b_num
print(c_bool)
“布尔”数据类型只有两种值:True和False,要注意它们的首字母都是大写的。一般在后续学习的if语句中会广泛使用布尔数据类型。
更多推荐


所有评论(0)