Python 3でlength = 001
を作成しようとしていますが、印刷しようとするたびに、先行ゼロなしで値が切り捨てられます(length = 1
)。 length
を印刷する前に文字列にキャストすることなく、この現象をどのように止めることができますか?
zfill()
ヘルパーメソッドを使用して、文字列、整数、または浮動小数点をゼロで左詰めします。
使用例:
print str(1).zfill(3);
# Expected output: 001
説明:
値に適用されると、zfill()
は、初期string値の長さが適用されたwidth値、それ以外の場合、初期string値はそのまま。
構文:
str(string).zfill(width)
# Where string represents a string, an integer or a float, and
# width, the desired length to left-pad.
python 3.6以降では、fstringを使用できます。
>>> length = 1
>>> print(f'length = {length:03}')
length = 001
Python整数には、固有の長さや有効桁数がありません。特定の方法で印刷する場合は、文字列に変換する必要があります。パディング文字や最小長などを指定できるようにする方法はいくつかあります。
ゼロを最低3文字まで埋め込むには、次を試してください。
length = 1
print(format(length, '03'))
これを実現する方法はたくさんありますが、Python 3.6+で最も簡単な方法は、私の意見では次のとおりです。
print(f"{1:03}")
このい方法をお勧めしますが、length=1 lenghtafterpadding=3 newlength='0'*(lengthafterpading-len(str(length))+str(length)
動作します
これよりも軽い解決策を見つけるためにここに来ました!