- 数字类型
Python 有四种不同的数字类型,分别是:整数、浮点数、布尔类型和复数。
-
整数
Python 的整数长度是不受限制的,也就是说它是有无限大的精度。
所以,你可以随时随地的进行大数运算: -
浮点数
我们通常数学意义上的小数在编程里叫浮点数。
由于浮点数在计算机中的存储是存在 “误差” 的,所以有时候可能会闹出一些 “BUG”:
>>> 0.1+0.2
0.30000000000000004
由于浮点数并不是 100% 精确的,所以我们拿浮点数来做比较就要特别小心了:
>>> 0.3 == 0.1 + 0.2
False
- 布尔类型
(1)、结果为false
定义为 False 的对象:None 和 False
值为 0 的数字类型:0, 0.0, 0j, Decimal(0), Fraction(0, 1)
空的序列和集合:’’, (), [], {}, set(), range(0)
True和False为什么分别用0和1表示?
因为计算机只认识二进制数,所以所有的编程语言最终都会转换为简单的二进制数给CPU进行一系列的规则解析。由于二进制只有0和1,所以用0和1来表示False和True最合适不过了
(2)、逻辑运算符
and 和 or 运算符,它的计算结果不一定是 True 或者 False。
如果你给到操作数的是两个数值,那么它的运算结果也是数值:
>>> 3 < 4 and 4 < 5
True
>>> 3 and 4 #3为真,4为真,输出4
4
#与and 碰到 “0” 就刹车 或or 碰到为True就刹车
>>> 3 < 4 or 4 > 5
True
>>> 3 or 4 #3为真,有一个为真,直接输出
3
如果你给到操作数的是两个字符串,那么它的结果也是字符串:
>>> "wuning" and "liangli"
'liangli'
>>> "wuning" or "liangli"
'wuning'
- 复数
复数包含了一个实部和一个虚部:
>>> 1+3j
(1+3j)
>>> x = 1+3j
>>> x.real
1.0
>>> x.imag
3.0
它们都是以浮点数的形式存放的,如果将一个复数赋值给一个变量 x,则可以通过 x.real 访问该复数的实部,x.imag 访问其虚部
- 精确计算浮点数
这里我们需要借助到一个叫做 decimal 的模块
>>> import decimal
>>> a = decimal.Decimal('0.1')
>>> b = decimal.Decimal('0.2')
>>> print(a+b)
0.3
>>> c = decimal.Decimal('0.3')
>>> a + b == c
True
decimal(0.1)与decimal(‘0.1’)不相同
>>> a = decimal.Decimal(0.1)
>>> print(a)
0.1000000000000000055511151231257827021181583404541015625
>>> a = decimal.Decimal('0.1')
>>> print(a)
0.1
- E 记法
E 记法也就是平时我们所说的科学计数法,用于表示一些比较极端的数。
e-05 10的负5次方
>>> 0.00005
5e-05
E是指数的意思,比如7.823E5=782300 这里E5表示10的5次方
科学记数:此格式用指数表示法显示数字,以 E+n 替换部分数字,其中 E(代表指数)表示将前面的数字乘以 10 的 n 次幂。