web-dev-qa-db-ja.com

Python 3で先行ゼロで文字列を埋め込む方法

Python 3でlength = 001を作成しようとしていますが、印刷しようとするたびに、先行ゼロなしで値が切り捨てられます(length = 1)。 lengthを印刷する前に文字列にキャストすることなく、この現象をどのように止めることができますか?

43
Gabby Freeland

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.
69
nyedidikeke

python 3.6以降では、fstringを使用できます。

>>> length = 1
>>> print(f'length = {length:03}')
length = 001
25
PhE

Python整数には、固有の長さや有効桁数がありません。特定の方法で印刷する場合は、文字列に変換する必要があります。パディング文字や最小長などを指定できるようにする方法はいくつかあります。

ゼロを最低3文字まで埋め込むには、次を試してください。

length = 1
print(format(length, '03'))
9
Blckknght

これを実現する方法はたくさんありますが、Python 3.6+で最も簡単な方法は、私の意見では次のとおりです。

print(f"{1:03}")
2
Anatol

このい方法をお勧めしますが、length=1 lenghtafterpadding=3 newlength='0'*(lengthafterpading-len(str(length))+str(length)動作します

これよりも軽い解決策を見つけるためにここに来ました!

0
wydadman