数字类型概述

数字类型属于内置类型。有三种不同的数字类型:整数,浮点数和复数。

整数通常只有数字,浮点数有小数点,而复数有实部(省略则为 0)和虚部,虚部必须有 J 或 j。

它们的类型分别是 int,float 和 complex。

type(1), type(1.0), type(1j)
(int, float, complex)

它们虽然属于不同的类型,但 Python 完全支持其混合运算。

而且布尔类型属于整数类型的子类型,布尔类型也可参与混合运算。

True/3 + 1.5 - 1J
(1.8333333333333333-1j)

数字之间比较时,比较的是它们的精度决定的精确值:

True == 1 == 1.0
True

对于不同类型的数字,只要精确值相等,哈希值必定相等:

hash(True) == hash(1) == hash(1.0)
True

因此作为集合的元素时,它们是一个元素;作为字典的键时,是同一个键。但这不是明智之举,因为浮点数存在精度问题:

{True, 1, 1.0}
{True}
{True:1, 1:2, 1.0:3}
{True: 3}
1.00000000000000009 == 1
True

整数,浮点数和复数的构造函数分别是:int()float()complex()。构造细节详见相应内置函数知识点。

int('1'), float('1.0'), complex('1')
(1, 1.0, (1+0j))

关于各数字类型的特性和详细介绍见后面章节。