Python数字
Python 支持四种基本数字类型,它们分别是:
Python 中有两种有趣的类型是 Python 的长整型和复数类型。请不要将Python 的长整数与C 语言的长整数混淆。Python 的长整数所能表达的范围远远超过C 语言的长整数, 事实上,Python 长整数仅受限于用户计算机的虚拟内存总数。如果你熟悉 Java, Python 的长整数类似于 Java 中的BigInteger 类型。
从长远来看, 整型与长整型正在逐步统一为一种整数类型。从Python2.3 开始,再也不会报整型溢出错误, 结果会自动的被转换为长整数。在未来版本的Python 中, 两种整数类型将会无缝结合, 长整数后缀 “L”也会变得可有可无。
其实还有第五种数字类型, decimal, 用于十进制浮点数。不过它并不是内建类型, 你必须先导入 decimal 模块(模块将在后续章节中讲解)才可以使用这种数值类型。 由于需求日渐强烈,Python 2.4 增加了这种类型。举例来说, 由于在二进制表示中有一个无限循环片段,数字1.1 无法用二进制浮点数精确表示。因此, 数字1.1 实际上会被表示成:
>>> 1.1
1.1000000000000001
>>> print decimal.Decimal('1.1')
1.1
- int (有符号整数)
- long (长整数)
- float (浮点值)
- complex (复数)
类型 | 举例 |
---|---|
int | 0101 84 -237 0x80 017 -680 -0x92 |
long | 29979062458L -84140l 0xDECADEDADEFFEDBACAL |
float | 3.1415926 4.2E-10 -90. 6.022e23 -1.609E-19 |
complex | 6.23+1.5j -1.23-875J 0+1j |
Python 中有两种有趣的类型是 Python 的长整型和复数类型。请不要将Python 的长整数与C 语言的长整数混淆。Python 的长整数所能表达的范围远远超过C 语言的长整数, 事实上,Python 长整数仅受限于用户计算机的虚拟内存总数。如果你熟悉 Java, Python 的长整数类似于 Java 中的BigInteger 类型。
从长远来看, 整型与长整型正在逐步统一为一种整数类型。从Python2.3 开始,再也不会报整型溢出错误, 结果会自动的被转换为长整数。在未来版本的Python 中, 两种整数类型将会无缝结合, 长整数后缀 “L”也会变得可有可无。
其实还有第五种数字类型, decimal, 用于十进制浮点数。不过它并不是内建类型, 你必须先导入 decimal 模块(模块将在后续章节中讲解)才可以使用这种数值类型。 由于需求日渐强烈,Python 2.4 增加了这种类型。举例来说, 由于在二进制表示中有一个无限循环片段,数字1.1 无法用二进制浮点数精确表示。因此, 数字1.1 实际上会被表示成:
>>> 1.1
1.1000000000000001
>>> print decimal.Decimal('1.1')
1.1