Python 2.x 支持四种内置数值型——int、long、float 和 complex。其中特别需要注意的是,Python 3.x 中已经删除了 long 型,int 型现在默认为无限长度。你不需要指定变量的型,Python 会自动处理。

  • Int:Python 中的基本整数型,等价于你所使用平台上的硬件 ‘c long’ 型,在 Python 3.x 中其长度是无限的。
  • Long:具有无限长度的整数型。在 Python 2.2 及更高版本中,当整数溢出时,int 会自动转换为 long。在 Python 3.x 中已被移除,使用 int 型代替。
  • Float:这是一个二进制浮点数。当浮点数用于表达式中,long 和 int 会自动转换为浮点数,并且与真除法运算符 / 一起使用时,结果也是浮动的。在 CPython 中,浮点数通常使用 C 语言的 double 型实现,这通常包括 52 位有效数字、11 位指数和 1 位符号位,但这取决于机器。
  • Complex:这是一个由两个浮点数组成的复数。复数字面值写为 a + bj,其中 a 和 b 分别表示实部和虚部。

通常,数值型会自动向上转换,顺序如下:

Int → Long → Float → Complex

越往右,优先级越高。

>>> x = 5
>>> type(x)
<type 'int'>
>>> x = 187687654564658970978909869576453
>>> type(x)
<type 'long'>
>>> x = 1.34763
>>> type(x)
<type 'float'>
>>> x = 5 + 2j
>>> type(x)
<type 'complex'>

除法的结果有些令人困惑。在 Python 2.x 中,使用 / 运算符对两个整数进行运算时,将返回另一个整数,采用地板除法。例如,5/2 会得到 2。要获取真除法,至少需要其中一个操作数为浮点数,例如 5/2.5./2(点使数字成为浮点数)会返回 2.5。从 Python 2.2 开始,可以通过 from __future__ import division 语句来改变这个行为,进行真除法。在 Python 3.x 中,使用 / 运算符的结果始终是进行真除法(你可以通过使用 // 运算符显式请求地板除法,自 Python 2.2 开始就支持这个操作)。

以下是 Python 2.2+ 中 / 运算符行为的示例:

>>> 5/2
2
>>> 5/2.
2.5
>>> 5./2
2.5
>>> from __future__ import division
>>> 5/2
2.5
>>> 5//2
2

有关数字操作的更多内容,请参阅《基础数学》和《数学》章节。

最后修改: 2025年01月30日 星期四 23:17