跳轉到內容

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

有關數字運算,請參閱 基本數學數學 章節。

華夏公益教科書