与えられた:
a = 1
b = 10
c = 100
2桁未満のすべての数値の先行ゼロを表示するにはどうすればよいですか?
これは私が期待している出力です:
01
10
100
与えられた:
a = 1
b = 10
c = 100
2桁未満のすべての数値の先行ゼロを表示するにはどうすればよいですか?
これは私が期待している出力です:
01
10
100
Python 2 (および Python 3) では、次のことができます。
number = 1
print("%02d" % (number,))
基本的に%はprintf
orのようなものですsprintf
( docsを参照)。
Python 3.+ の場合、次の方法でも同じ動作を実現できますformat
。
number = 1
print("{:02d}".format(number))
Python 3.6+ では、f-stringsを使用して同じ動作を実現できます。
number = 1
print(f"{number:02d}")
使用できますstr.zfill
:
print(str(1).zfill(2))
print(str(10).zfill(2))
print(str(100).zfill(2))
プリント:
01
10
100
またはこれ:
print '{0:02d}'.format(1)
x = [1, 10, 100]
for i in x:
print '%02d' % i
結果:
01
10
100
% を使用した文字列の書式設定に関する詳細については、ドキュメントを参照してください。
これを行うためのPythonicの方法:
str(number).rjust(string_width, fill_char)
このように、元の文字列の長さがstring_widthより大きい場合、元の文字列は変更されずに返されます。例:
a = [1, 10, 100]
for num in a:
print str(num).rjust(2, '0')
結果:
01
10
100
これはf 文字列で行うことができます。
import numpy as np
print(f'{np.random.choice([1, 124, 13566]):0>8}')
これは一定の長さの 8 を出力し、残りを先頭に0
.
00000001
00000124
00013566
フォーマット文字列を使用する - http://docs.python.org/lib/typesseq-strings.html
例えば:
python -c 'print "%(num)02d" % {"num":5}'
1 桁または 2 桁の数字を扱う場合:
'0'+str(number)[-2:]
また'0{0}'.format(number)[-2:]