1189

与えられた:

a = 1
b = 10
c = 100

2桁未満​​のすべての数値の先行ゼロを表示するにはどうすればよいですか?

これは私が期待している出力です:

01
10
100
4

17 に答える 17

1505

Python 2 (および Python 3) では、次のことができます。

number = 1
print("%02d" % (number,))

基本的に%printforのようなものですsprintf( docsを参照)。


Python 3.+ の場合、次の方法でも同じ動作を実現できますformat

number = 1
print("{:02d}".format(number))

Python 3.6+ では、f-stringsを使用して同じ動作を実現できます。

number = 1
print(f"{number:02d}")
于 2008-09-25T18:08:21.363 に答える
1126

使用できますstr.zfill

print(str(1).zfill(2))
print(str(10).zfill(2))
print(str(100).zfill(2))

プリント:

01
10
100
于 2010-07-30T11:58:30.337 に答える
376

Python 2.6 以降および 3.0 以降では、format()string メソッドを使用します。

for i in (1, 10, 100):
    print('{num:02d}'.format(num=i))

または組み込みを使用する(単一の数値の場合):

print(format(i, '02d'))

新しいフォーマット関数については、 PEP-3101ドキュメントを参照してください。

于 2008-09-25T18:43:06.460 に答える
90

またはこれ:

print '{0:02d}'.format(1)

于 2010-11-10T10:03:43.967 に答える
68
x = [1, 10, 100]
for i in x:
    print '%02d' % i

結果:

01
10
100

% を使用した文字列の書式設定に関する詳細については、ドキュメントを参照してください。

于 2008-09-25T18:07:37.170 に答える
55

これを行うための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
于 2012-04-27T22:02:37.990 に答える
7

これはf 文字列で行うことができます。

import numpy as np

print(f'{np.random.choice([1, 124, 13566]):0>8}')

これは一定の長さの 8 を出力し、残りを先頭に0.

00000001
00000124
00013566
于 2020-03-11T18:50:30.170 に答える
5

フォーマット文字列を使用する - http://docs.python.org/lib/typesseq-strings.html

例えば:

python -c 'print "%(num)02d" % {"num":5}'
于 2008-09-25T18:10:01.003 に答える
-3

1 桁または 2 桁の数字を扱う場合:

'0'+str(number)[-2:]また'0{0}'.format(number)[-2:]

于 2016-02-19T04:20:45.753 に答える