
上QQ阅读APP看书,第一时间看更新
1.6.2 int(有符号整型)
需要指出的是,计算机程序里有时候会采用十进制以外的其他进制来表示int型数值,如下所示。
二进制:0b001、0b111、-0B101010……在Python中表示二进制时需要在前面写一个数字0和一个英文b(大小写都行)。例如:
>>> 0b001 1 >>> 0b111 7 >>> -0B101010 -42
八进制:0o147、0O23、-0o613……在Python中表示八进制时需要在前面写一个数字0和一个英文O(大小写都行)。例如:
>>> 0o147 103 >>> 0O23 19 >>> -0o613 -395
十六进制:0x135、0X2AEF、-0xc7d4……在Python中表示十六进制时需要在前面写一个数字0和一个英文x(大小写都行)。例如:
>>> 0x135 309 >>> 0X2AEF 10991 >>> -0xc7d4 -51156
当指定一个数值时,就会创建一个数值类型的变量。
>>> 1 1 >>> 2 2 >>> x1=1 >>> x2=2 >>> x1 1 >>> x2 2
数值类型是不可改变的,这意味着每一个不同的数值数据会被分配一个新的变量空间。我们可以用id()函数来获取变量空间的地址,从而判断数值是否存储在相同的位置,例如:
>>> id(1) 140720863499296 >>> id(2) 140720863499328 >>> id(x1) 140720863499296 >>> id(x2) 140720863499328
可以发现1和变量x1的取值都是数值1,它们使用的变量空间实际上是一致的。同样,2和赋值了2的变量x2,也是指向同一个变量空间。
“我猜如果程序中有更多的变量都等于1,甚至使用其他进制表示的1,它们所使用的变量空间也都与数值1一样!”洛克威尔抢着说。
“不用怀疑,你说得对!”西西船长输入了以下代码:
>>> x13=0x0001 >>> id(x13) 140720863499296 >>> id(0b0000000001) 140720863499296
“果然不出所料啊!我对变量的概念更清晰了!”
“所以,我们通常把x1、x2、x13这样具有名字的变量称为对变量的引用——并不是新的变量,只是对数据的引用。就像图1-16那样。”
使用del语句能够删除一些对象的引用,例如:
>>> del(x1) >>> id(x1) Traceback (most recent call last): File "<pyshell#29>", line 1, in <module> id(x1) NameError: name 'x1' is not defined
删除x1的引用后,再使用id(x1)查看它的存储位置,结果程序报错:名字'x1'未定义。
了解完有符号整型,洛克威尔兴致高涨,迫不及待地问:“那什么是浮点型呢?”