数値リテラル¶
プログラムに書かれた数字を数字リテラルといいます。
数字リテラルの種類は、下表の通りです。
| 型 | 説明 | 例 |
|---|---|---|
| int | 整数 | 0, 1, -1, 123 |
| float | 実数 | 0., 0.0, -1.23, 1e-2 |
| complex | 複素数 | 1j, 1-2j |
なお、数値は、数と数の間の任意の位置に「_」を入れて、読みやすくすることができます。
たとえば、「10_000」は「10000」と同じです。
整数 int¶
Pythonの整数は、intです。精度(有効桁数)の制限はありません。何桁でも扱えます。
整数リテラルは、4通りあります。いずれも、途中に_をはさんで見やすくできます。たとえば、1_000は1000です。
10進数:0から9の数字を並べて作成できます。
+または-の符号を付けられます。ただし、0以外の数字を0では始められません。たとえば、01は許されません。2進数:
0bで始めて、0と1の文字を並べて作成できます。+または-の符号を付けられます。たとえば、0b10は2になります。8進数:
0oで始めて、0から7の文字を並べて作成できます。+または-の符号を付けられます。たとえば、0o10は8になります。16進数:
0xで始めて、0から9またはaからfの文字を並べて作成できます。+または-の符号を付けられます。たとえば、0x10は16になります。
bin, oct, hexで整数を、2進数、8進数、16進数の文字列に変換できます。
bin(15)は'0b1111'に、oct(15)は'0o17'に、hex(15)は'0xf'になります。
n進数の文字列は、int(文字列, n)で整数に変換できます。このとき文字列に0bなどのプレフィックスは付けなくても大丈夫です。たとえば、int('111', 2)は7です。
参考
実数 float¶
Pythonで実数は、浮動小数点数(float)として扱われます。
浮動小数点数の精度は、有限で処理系依存です。sys.float_infoで確認できます。通常、おおよそ10の308乗から-10の308乗くらいを表現でき、有効桁数は16桁ぐらいです。
数値は、下記の式に分解し、符号、仮数部、指数部として内部で情報が保持されます。小数点の位置が固定でないので浮動小数点数といいます。
数値の絶対値 = 仮数部 * 2**指数部
浮動小数点数リテラルは、0から9の数字を並べて作成できます。ドットをつけることで、小数点を表現します。+または-の符号を付けられます。
指数表記も使えます。
参考:浮動小数点数リテラル
浮動小数点数リテラルにおける指数表記¶
1.23e1は、1.23 * 10**1を意味し12.3になります。このようにeを使った表記を指数表記といいます。
1.23e+1も1.23e1と同じです。
1.23e-2は、1.23 * 10** -2を意味し0.0123になります。
特殊な数について¶
数字リテラルではないですが、floatには、次の特殊な値があります。
float('inf'):正の無限大(infinity)を表します。正の無限大以外の全ての数より大きいです。float('-inf'):負の無限大を表します。負の無限大以外の全ての数より小さいです。float('nan'):非数 (Not a Number)を表します。float('nan') == float('nan')を含む全ての演算がFalseになります。
複素数 complex¶
Pythonの複素数は、complexです。複素数は、数字a, bを用い、a+bjと表記します。aを実部、bを虚部といいます。aだけを実数、bだけを虚数といいます。
3+4jは、1つの複素数です。実部(real)は3、虚部(imag)は4です。
複素数は、数学の幾何や工学でよく使われています。
参考