★说明: 本文是正在编写的一本书的草稿,在微信公众号选择发布,请读者赏析。 ”
进入到 Python 交互模式中,输入一个整数:
>>> 3
3
就返回了所输入的数字,这说明 Python 解释器接受了所输入的那个数字,并且认识了它。
>>> x = 3
>>> x
3
对此也不陌生,在第2章2.3节已经自学过变量,此处的 x
即为一个变量,它引用了 3
。
上面的操作中,不论是单独输入 3
还是输入 x = 3
,都是用 Python 语言创建了一个对象,它就是整数 3
。何以见得?可以用下面的方式来检验:
>>> type(3) # (1)
<class 'int'>
>>> type(x) # (2)
<class 'int'>
其中 type()
是 Python 的内置函数(先记住这个名词,详细介绍请参阅3.3.1节),以注释(1)为例,3
作为该函数的参数,返回值 <class 'int'>
说明此对象的类型是 'int'
,即整数(integer)。
由此可知,在 Python 中定义一个整数类型的对象非常简单,只要通过键盘输入整数即可。
如果定义 0
和负数,也是用同样的方法:
>>> zero = 0
>>> type(zero)
<class 'int'>
>>> negative_int = -9
>>> type(negative_int)
<class 'int'>
此处,之所以能如此简单地创建整数或者说整数类型的对象,完全得益于 Python 语言的开发环境已经为我们定义了名为 int
的对象类型——称为“内置对象类型”或“内置对象”,即当 Python 环境配置好之后,本地就已经存在,可以直接使用,不需要开发者来定义。
在 Python 中,与每种内置对象相对应,定义了一个同名的内置函数,通过此内置函数也可以定义该对象。以创建整数为例:
>>> a = int()
>>> a
0
>>> type(a)
<class 'int'>
>>> b = int(9)
>>> b
9
>>> type(b)
<class 'int'>
不过,通常较少如此应用,int()
内置函数更多地应用于类型转换(参阅3.3.1节)。
在日常生活中,我们还会看到这样书写的整数:
但是,在 Python 中如果直接输入它们,不会如愿以偿:
>>> x = 005
File "<stdin>", line 1
x = 005
^
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
Python 解释器不认识 005
,强行输入就会出现上述异常,通过上述报错信息可知,整数不能用 0
开头 ——认真阅读报错信息,是自学者和未来的优秀开发者必备意识和能力。
>>> y = 6,371
>>> y
(6, 371)
这里没有报错,但是,所得到的不表示本意——是另外一类 Python 对象,详见第4章4.4节。
★
自学建议
如果读者对计算机的基本原理有所了解,会知道这样一个结论:在计算机上,存储的数字并非是无限大或者无限小的。例如,64位的中央处理器所能存储的无符号整数范围是
,如果超过此范围,就会发生算术溢出(arithmetic overflow)——此内容的详细解释不在本书范围,请读者自行参阅“计算机原理”的相关资料深入学习。
但是,在 Python 中如果创建超出上述理论范围的整数——注意是“整数”,不会出现溢出现象。
>>> 2**1000
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
>>> -2**1000
-10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
2**1000
表示
,显然这是一个非常非常大的整数,但是没有如计算机原理中所说的那样出现溢出现象。
这是什么原因?难道 Python 神奇到能超越硬件限制吗?非也!
读者如果对这种现象感兴趣,不妨在网上搜索,能找到有关说明资料。
如果读者按照上述过程思考,并动手搜索,通过阅读有关资料对问题的缘由有所了解,就是在实践着自学中一个重要的环节:将所学内容与已有知识进行联系,并利用网络解决其中的疑问。
”
更多内容,请参考 www.itdiffer.com 网站