数値リテラル¶
プログラムに書かれた数字を数字リテラルといいます。
数字リテラルの種類は、下表の通りです。
型 | 説明 | 例 |
---|---|---|
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
です。
複素数は、数学の幾何や工学でよく使われています。
参考