2.6 数字

Python支持五种基本数字类型,其中有三种是整型类型。

  • 有符号整型

    • 长整型

    • 布尔值

  • 浮点值

  • 复数

下面是一些例子。

2.6 数字 - 图1

Python中有两种有趣的类型,就是Python的长整型和复数类型。请不要将Python的长整型与C语言的长整型混淆。Python的长整型所能表达的范围远远超过C语言的长整型,事实上,Python长整型仅受限于用户计算机的虚拟内存总数。如果你熟悉Java,Python的长整型类似于Java中的Biglnteger类型。

从长远来看,整型与长整型正在逐步统一为一种整型类型。从Python2.3开始,再也不会报整型溢出错误,结果会被自动转换为长整型。在未来版本的Python中,两种整型类型将会无缝结合,长整型后缀“L“也会变得可有可无。

布尔值是特殊的整型。尽管布尔值由常量True和False来表示,如果将布尔值放到一个数值上下文环境中(比如将True与一个数字相加),True会被当成整型值1,而False则会被当成整型值()。复数(包括-1的平方根,即所谓的虚数)在其他语言中通常不被直接支持(一般通过类来实现)。

其实还有第6种数字类型,即decimal,用于十进制浮点型。不过它并不是内建类型,你必须先导入 decimal模块才可以使用这种数值类型。由于需求日渐强烈,Python2.4增加了这种类型。举例来说,由于在二进制表示中有一个无限循环片段,数字1.1无法用二进制浮点型精确表示。因此,数字1.1实际上会被表示成如下形式。

2.6 数字 - 图2

第5章将详细介绍所有的数字类型。