Python 上で数値を扱う場合「整数型」「浮動小数点型」「複素数型」の3種類の型があります。ここでは、この3種類の型の扱い方について解説します。
整数型
整数型では正負の整数を扱うことが出来、C言語での int 型に相当します。また扱える桁数は無制限となります(システムのメモリには依存します)。
なお Python バージョン2までは整数型と長整数型(long 型に相当)が別に用意されていましたが、バージョン3では統合されました。このため、Python での整数型の桁数は無制限、と覚えておいて差し支えないでしょう。
1 2 3 4 5 6 |
>>> a = 123 >>> a 123 >>> b = 12345678901234567890123456789012345678901234567890 >>> b 12345678901234567890123456789012345678901234567890 |
また、数値としては2進数、8進数、16進数も扱えます。それぞれ数値の頭に 0b、0o、0x を付けると2進数、8進数、16進数として認識されます。また、表示する際は、自動的に10進数として出力されます。
1 2 3 4 5 6 7 8 9 |
>>> a = 0b11 >>> a 3 >>> b = 0o10 >>> b 8 >>> c = 0x1f >>> c 31 |
浮動小数点数型
浮動小数点数型では、正負の浮動小数を扱うことができ、C言語のfloat型に相当します。表記する際は、通常の小数の表記の他に指数表記も使えます。なお指数表記する際は「e」と「E」の両方が使えます。
1 2 3 4 5 6 7 8 9 |
>>> a = 1.23 >>> a 1.23 >>> b = 2.45e5 >>> b 245000.0 >>> c = 4.67E-3 >>> c 0.00467 |
また、浮動小数点数型から整数型への変換(切捨て)は、int()関数を使用します。例の様に、浮動小数点数から整数を出力します。
1 2 3 4 5 |
>>> a = 12.34 >>> a 12.34 >>> int(a) 12 |
なお浮動小数点数型で扱える数の最大値、及び最小値はシステムにより異なります。これは、インタラクティブシェルで以下のコマンドを実行することにより、確認できます。
1 2 3 4 5 |
>>> import sys >>> sys.float_info.max 1.7976931348623157e+308 >>> sys.float_info.min 2.2250738585072014e-308 |
例えばこのシステムでは、最大値は 1.7976931348623157e+308、最小値は 2.2250738585072014e-308 であることが確認できました。
複素数型
複素数型では、正負の複素数の数値を扱うことができます。なお、虚数単位は「j」又は「J」を用います。また実数型や浮動小数点数型と同様に四則演算を行うことができます。以下に計算例を示します。
1 2 3 4 5 6 7 8 9 10 |
>>> a = 2 + 4j >>> a (2+4j) >>> b = 2 - 2J >>> b (2-2j) >>> a - 2 * b (-2+8j) >>> a * b (12+4j) |
また実部 a と虚部 b を指定して複素数を返す関数 complex() が用意されています。もちろん実部、虚部とも整数型と浮動小数点数型の両方が指定できます。
1 2 3 4 5 |
>>> a = 5 >>> b = 1.2 >>> c = complex(a,b) >>> c (5+1.2j) |
また複素数変数より実部、または虚部を取り出す操作は変数の以下のメソッドを用いることで実現できます。
1 2 3 4 5 |
>>> a = 3 - 5j >>> a.real 3.0 >>> a.imag -5.0 |
まとめ
Python での数値の扱いは、慣れれば簡単です。特に、整数に上限が無かったり、複素数を簡単に扱えたりと、C言語など従来の言語と比べてとても便利になっています。