零基础学Python编程(少儿趣味版)
上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那样。”

图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'未定义。

了解完有符号整型,洛克威尔兴致高涨,迫不及待地问:“那什么是浮点型呢?”