Pythonにおける数値の中のアンダースコア(バージョン3.6以上)

Python (3.6以上) の数値の中のアンダースコアは区切り文字です。
読みやすくすることが目的であり、無視できます。

実際に、こちらを実行するとTrueになります。

>>> 1_000_0 == 10000
True

ただし、これらの制約があります。

  • Python 3.6以上
  • 数値の間(あるいは、基数指定の直後)に一つだけ挿入

リファレンスで確認

Python言語リファレンス(3.7.4)で確認しましょう。

2.4.4. 数値リテラル には以下の記述があります。

アンダースコアはリテラルの値を判断するにあたって無視されます。そのためアンダースコアを使って数字をグループ化することで読みやすくできます。アンダースコアは数字と数字の間に 1 つだけ、あるいは 0x のような基数指定の直後に 1 つだけ挿入できます。

バージョン 3.6 で変更: グループ化を目的としたリテラル中のアンダースコアが許されるようになりました。

Python言語リファレンス(3.7.4); 2.4.4 数値リテラル

たしかに、アンダースコアは数値の区切り文字として使われ、無視しても問題ないようです。

ちなみに、リテラル に関しては、こちらの記事で取り上げています。
また、0x は16進数であることを示しています。

>>> 0x10 == 16
True

おわりに

テキストやウェブの情報は、実際に使っているPythonとバージョンが異なっていることもあり得ます。
バージョンが異なると、動作や表示も若干異なる場合があるので注意が必要です。
このようなドキュメントを見るクセをつけておきましょう。
では。


YouTube: ミサキさん

問い合わせ先
Mail: caprico.aries@gmail.com
Twitter: https://twitter.com/caprico_aries(無言フォローもお気軽に)

スポンサーリンク
記事を書いている人
ミサキ

プログラマ(@東京の国立研究所)として働きながら,占い師(の卵)としても活動しています.そのため,占いモニターを定期的に募集しています!⇒占いモニターのページ.実は,天文学の博士でもあります☆彡

詳しいプロフィールはこちら

ミサキをフォローする
Python情報処理
スポンサーリンク
ミサキをフォローする
プログラマー&天文博士&占い師 ミサキのブログ

コメント

タイトルとURLをコピーしました