跳转到内容

Python 编程/数字

来自维基教科书,开放书籍,开放世界


Python 2.x 支持 4 种内置数值类型 - int、long、float 和 complex。其中,long 类型在 Python 3.x 中被删除 - int 类型现在默认情况下是无限长度的。您不必指定想要使用哪种类型的变量;Python 会自动执行此操作。

  • Int: Python 中的基本整数类型,等效于您在 Python 2.x 中使用的平台的硬件“c long”,在 Python 3.x 中长度无限。
  • Long: 长度无限的整数类型。在 python 2.2 及更高版本中,Int 在溢出时会自动转换为 long ints。从 Python 3.0 开始删除,请改用 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 开始,此行为可以通过 future division 语句更改为真除法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

有关数字运算,请参阅 基本数学数学 章节。

华夏公益教科书