Home » Python » 2進数リテラルでも桁区切りのアンダーバー・アンダースコアを入れられる

2進数リテラルでも桁区切りのアンダーバー・アンダースコアを入れられる

動作検証バージョン: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となります。

[スポンサードリンク]

Home » Python » 2進数リテラルでも桁区切りのアンダーバー・アンダースコアを入れられる

「Python」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.