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(無言フォローもお気軽に)
コメント