2

おそらくばかげた質問ですが、Python では、固定長になるまで数値にゼロを自動的に埋め込む簡単な方法はありますか? Python ドキュメントでこれを見つけることができませんでしたが、十分に調べていなかったのでしょうか? bin(4) が 100 ではなく 00100 を返すようにしたいのですが、出力が 3 ビットではなく 6 ビットになるようにする簡単な方法はありますか?

4

3 に答える 3

11

文字列には、.zfill()ゼロを埋め込むメソッドがあります。

>>> '100'.zfill(5)
'00100'

ただし、2 進数の場合は、文字列の書式設定を使用します。

>>> '{0:05b}'.format(4)
'00100'

フォーマット仕様は:05b、渡された数値を 5 桁のゼロを埋め込んだ 2 進数としてフォーマットします。Python フォーマット文字列の構文 を参照してください。ここで使用str.format()しましたが、組み込みformat()関数{0:..}は、プレースホルダー構文を除いて、同じフォーマット命令を取ることができます。

>>> format(4, '05b')
'00100'

あなたがそれをより簡単に見つけたら。

于 2012-11-28T07:12:12.377 に答える
3

これはformat組み込み関数のジョブです。

>>> format(4, '05b')
'00100'
于 2012-11-28T07:12:20.710 に答える
3

これを試して...

In [11]: x = 1

In [12]: print str(x).zfill(5)
00001

In [13]: bin(4)
Out[13]: '0b100'

In [14]: str(bin(4)[2:]).zfill(5)
Out[14]: '00100'
于 2012-11-28T07:10:08.653 に答える