数字类型(integer)
整型(int)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
长整型(long)
和C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
1 | # 在python2.x 中(python3.x中没有长整型的概念): |
浮点型(float)
浮点数用来处理实数,也就是带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
复数(complex)
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
1 | 1-2j x= |
进制转换
1 | bin(var) # 把变量转换为2进制 |
小知识点
- Python中存在小数字池:
-5 ~ 256,即[-5,257]
Python对小整数的定义是[-5,257]这些整数对象是提前建立好的,不会被垃圾回收。在一个Python的程序中,所有位于这个范围内的整数使用的都是同一个对象。
同理,单个字母也是这样的。
在一般情况下当变量被赋值后,内存和变量的关系如下:
1 | # 方式一 |
1 | # 方式二 |
由于python内的优化机制,不论是2.x还是3.x都存在,在-5~257之间的数,如果使用第一种赋值方式,那么他们依然属于同一块内存
1 | print(id(n1)) # 查看变量的内存地址 |