4 つの異なる数値型があります: 通常の整数型 、 長整数型 、浮動小数点型 、および 複素数型 です。
さらに、ブール方は通常の整数型のサブタイプです。通常の整数
(単に 整数型 とも呼ばれます) は C では long を
使って実装されており、少なくとも 32 ビットの精度があります
(sys.maxint
は常に通常の整数の各プラットフォームにおける
最大値にセットされており、最小値は -sys.maxint - 1
になります)。
長整数型には精度の制限がありません。浮動小数点型は C では
double を使って実装されています。しかし使っている計算機
が何であるか分からないなら、これらの数値型の精度に関して断言はできません。
複素数型は実数部と虚数部を持ち、それぞれの C では double を
使って実装されています。複素数 z から実数および虚数部を取り出す
には、z.real
および z.imag
を使います。
数値は、数値リテラルや組み込み関数や演算子の戻り値として生成されます。 修飾のない整数リテラル (16 進表現や 8 進表現の値も含みます) は、 通常の整数値を表します。値が通常の整数で表すには大きすぎる場合、 "L" または "l" が末尾につく整数リテラル は長整数型を表します ("L" が望ましいです。というのは "1l" は 11 と非常に紛らわしいからです!) 小数点または 指数表記のある数値リテラルは浮動小数点数を表します。 数値リテラルに "j" または "J" をつけると 実数部がゼロの複素数を表します。複素数の数値リテラルは実数部と 虚数部を足したものです。
Python は型混合の演算を完全にサポートします: ある 2 項演算子が 互いに異なる数値型の被演算子を持つ場合、より ``制限された'' 型の 被演算子は他方の型に合わせて広げられます。ここで通常の整数は 長整数より制限されており、長整数は浮動小数点数より制限されており、 浮動小数点は複素数より制限されています。 型混合の数値間での比較も同じ規則に従います。 3.2コンストラクタ int() 、long() 、float()、 および complex() を使って、特定の型の数を生成することが できます。
全ての数値型(complex は例外)は以下の演算をサポートします。これらの演算は 優先度の低いものから順に並べられています (同じボックスにある演算は 同じ優先度を持っています; 全ての数値演算は比較演算よりも 高い優先度を持っています):
演算 | 結果 | 注釈 |
---|---|---|
x + y |
x と y の和 | |
x - y |
x と y の差 | |
x * y |
x と y の積 | |
x / y |
x と y の商 | (1) |
x // y |
x と y の商(を切り下げたもの) | (5) |
x % y |
x / y の剰余 |
(4) |
-x |
x の符号反転 | |
+x |
x の符号不変 | |
abs(x) |
x の絶対値または大きさ | |
int(x) |
x の通常整数への変換 | (2) |
long(x) |
x の長整数への変換 | (2) |
float(x) |
x の浮動小数点数への変換 | |
complex(re,im) |
実数部 re 、虚数部 im の複素数。 im のデフォルト値はゼロ。 | |
c.conjugate() |
複素数 c の共役複素数 | |
divmod(x, y) |
(x // y, x % y) からなるペア |
(3) |
pow(x, y) |
x の y 乗 | |
x ** y |
x の y 乗 |
注釈:
[1, 2]
は [1.0, 2.0]
と等しいと見なされます。タプルの場合も同様です