数値リテラル

プログラムに書かれた数字を数字リテラルといいます。

数字リテラルの種類は、下表の通りです。

説明
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_0001000です。

  • 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+11.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です。

複素数は、数学の幾何や工学でよく使われています。

参考