動作検証バージョン:Windows 11 Home + Python 3.10.11
Pythonでは桁区切りに「_」(アンダーバー・アンダースコア)が入れられること、プレフィックス「0b」「0B」で2進数リテラルが表現できることを記事にしました。
この2つを組み合わせることも可能です。
[スポンサードリンク]
2進数でも桁区切り「_」を入れられる
2進数リテラルの中で桁区切り「_」を入れらるのです。
以下のコードを実行すると、いずれも変数nに2進数の11111111を代入できます。
>>> n = 0b1111_1111
>>> n = 0b_1111_1111
上記の右辺は「0b11111111」と書いてもかまいませんが、「_」が入っているほうが、読みやすいのは間違いありません。
printすると10進数の「255」が出力されます。
>>> print(n)
255
「_」は任意の箇所に入れられる
桁区切りの「_」は、実は、任意の箇所に入れられます。
>>> n = 0b_11_11_11_11
でも、変数nには「255」が代入されます。
まったく読みやすくはありませんが、
>>> n = 0b1111_1_111
でもOKです。
このルールは10進数の場合も同じです。
>>> n = 1_2345
を実行すると、nには「12345」を代入できます。
ただし、「_」を連続させるのはダメです。
「_」が2個以上つながっている
>>> n = 0b1111__1111
や
>>> n = 1__2345
はSyntaxErrorとなります。
[スポンサードリンク]