70

所以说我有

a = 5

我想将其打印为字符串 '05'

4

11 回答 11

123

在 python 3.6 中,引入了fstring或“格式化字符串文字”机制。

f"{a:02}"

相当于下面的 .format 格式,但更简洁一些。


3.6 之前的 python 3 更喜欢更详细的格式化系统:

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

你可以在这里走捷径,上面可能是最冗长的变体。完整文档可在此处获得: http: //docs.python.org/3/library/string.html#string-formatting


print "%02d"%a是 python 2 的变种

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
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 回答
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 回答
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 回答