70

だから私が持っていると言う

a = 5

文字列「05」として印刷したい

4

11 に答える 11

123

Python 3.6では、fstringまたは「フォーマットされた文字列リテラル」メカニズムが導入されました。

f"{a:02}"

以下の.format形式と同等ですが、もう少し簡潔です。


3.6より前のpython3は、やや冗長なフォーマットシステムを好みます。

"{0:0=2d}".format(a)

ここでショートカットを使用できます。上記はおそらく最も冗長なバリアントです。完全なドキュメントはここから入手できます:http: //docs.python.org/3/library/string.html#string-formatting


print "%02d"%aPython2の亜種です

python2に関連するドキュメントリンクは次のとおりです。http://docs.python.org/2/library/string.html#format-specification-mini-language

于 2010-08-17T18:49:57.737 に答える
24
a = 5
print '%02d' % a
# output: 05

'%'演算子は、左側の文字列とともに使用される場合、文字列フォーマット演算子と呼ばれます。'%d'は整数を出力するためのフォーマットコードです(値が数値でない場合はタイプエラーが発生します)。を使用'%2dすると、長さを指定でき'%02d'、パディング文字をデフォルトのスペースの代わりに0に設定するために使用できます。

于 2010-08-17T19:07:34.033 に答える
22
>>> print '{0}'.format('5'.zfill(2))
05

詳細はこちらをご覧ください

于 2010-08-17T18:51:50.923 に答える
8
>>> a=["%02d" % x for x in range(24)]
>>> a
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']
>>> 

とても簡単です

于 2017-02-10T10:02:05.793 に答える
5

Python3では、次のことができます。

print("%02d" % a)
于 2017-10-24T08:22:45.397 に答える
4

Python 3.6では、いわゆるf文字列を使用できます。私の意見では、この方法ははるかに読みやすくなっています。

>>> f'{a:02d}'
'05'
于 2021-01-24T17:56:15.380 に答える
3

@ user225312の説明に基づいて、.zfill()を使用して、文字列に変換された数値にパディングを追加できます。

私のアプローチは、文字列に変換したい瞬間まで、数値を数値として残すことです。

>>> num = 11
>>> padding = 3
>>> print(str(num).zfill(padding))
011
于 2020-06-30T03:24:19.687 に答える
1

モホマドの答えから分岐する:

str_years = [x for x in range(24)]
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]

#Or, if you're starting with ints:
int_years = [int(x) for x in str_years]

#Formatted here
form_years = ["%02d" % x for x in int_years]

print(form_years)
#['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']

于 2019-05-27T04:56:18.817 に答える
1
df["col_name"].str.rjust(4,'0')#(length of string,'value') --> ValueXXX --> 0XXX  
df["col_name"].str.ljust(4,'0')#(length of string,'value') --> XXXValue --> XXX0
于 2019-09-03T14:44:26.180 に答える
0

あなたがアナリストであり、フルスタックの人ではない場合、これはより直感的かもしれません:

[(str('00000') + str(i))[-5:] for i in arange(100)]

それを分解すると、あなたは:

  • 0またはXを繰り返すリストを作成することから始めます。この場合は100の長さ、つまりarange(100)です。

  • 文字列に必要な数字を追加します。この場合は、0〜99の数字、つまり「i」です。

  • 右手だけを5桁にします。つまり、サブセット化には「[-5:]」を使用します。

  • 出力は番号付きリストで、すべて5桁です

于 2020-01-23T15:26:00.033 に答える
0

これはばかげた解決策ですが、上記の他の解決策でタイプエラーが発生していました。したがって、他のすべてが失敗した場合、yolo:

images3digit = []

for i in images:
        if len(i)==1:
            i = '00'+i
            images3digit.append(i)
        elif len(i)==2:
            i = '0'+i
            images3digit.append(i)
        elif len(i)==3:
            images3digit.append(i)
于 2020-02-24T09:36:42.217 に答える