#基本数据类型
1.整型和浮点型
对于整型int来讲,不存在溢出。
但是浮点型float会溢出,会损失精度,即精度无效。
为什么会有精度失效:
计算机都是用二进制表示的,必然存在0与1之间的数字没法表示的情况
二进制小数转十进制小数
101.111(2)转
1*(22)+0*(21)+1*(20)+1*(2(-1))+1*(2(-2))+1*(2(-3))=5.875
(不太会用这个的编辑器额。。这个咋调额)
十进制小数转二进制小数
111.4(10)转
对小数部分采取“乘二取整法”
0.42=0.8 取0
0.82=1.6 取1
0.62=1.2 取1
0.22=0.4 取0
到这里可发现出现了循环,故而存在不能很好用0与1表示的数,即导致精度失效。
结果为1101111.01100110…(2)
规避精度失效:精确到小数点后面多少位
>>> from decimal import Context,getcontext
>>> getcontext()
Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])
>>> getcontext().prec = 8
>>> decimal.Decimal(3.3)*decimal.Decimal(6)
Decimal('19.800000')
这样我们通过getcontext().prec = 8进行了位数重置,再通过Decimal这个雷来定义浮点型3.3、6,这样通过decimal这个类实例化出来的浮点型小数就具有保留八位小数的功能了。
2.None
- None就是一个类型。
- None既不是空字符串,也不是未定义。
- None在判断语句中为False,但None不等于False。
3.Bool
- Bool就是True和False。
4.小结
基本数据类型一共有4种,int、float、bool、None