たとえば、数字の123を前面にさまざまな数のゼロを埋めて表示したいとします。
たとえば、5桁で表示したい場合は、桁= 5で次のようになります。
00123
6桁で表示したい場合、数字= 6で次のようになります。
000123
Pythonでこれを行うにはどうすればよいですか?
Zfillと呼ばれる文字列メソッドがあります。
>>> '12344'.zfill(10)
0000012344
文字列の長さN(この場合は10)になるように、文字列の左側にゼロを埋め込みます。
古いスタイルの_''%
_フォーマットよりも優先されるformat()
メソッドでフォーマットされた文字列で使用している場合
_>>> 'One hundred and twenty three with three leading zeros {0:06}.'.format(123)
'One hundred and twenty three with three leading zeros 000123.'
_
見る
http://docs.python.org/library/stdtypes.html#str.format
http://docs.python.org/library/string.html#formatstrings
これは可変幅の例です
_>>> '{num:0{width}}'.format(num=123, width=6)
'000123'
_
Fill charを変数として指定することもできます
_>>> '{num:{fill}{width}}'.format(num=123, fill='0', width=6)
'000123'
_
'%0*d' % (5, 123)
フォーマットされた文字列リテラルの導入 (略して「f-strings」)Python 3.6)で、以前定義された変数に簡単な構文でアクセスできるようになりました。
>>> name = "Fred"
>>> f"He said his name is {name}."
'He said his name is Fred.'
ジョン・ラ・ルーイによって与えられた例は、
In [1]: num=123
...: fill='0'
...: width=6
...: f'{num:{fill}{width}}'
Out[1]: '000123'
print "%03d" % (43)
プリント
043