在Python中如何将一位数转换为两位数字符串?

问题描述 投票:0回答:11

所以说我有

a = 5

我想将其打印为字符串

'05'

python string numbers digits
11个回答
166
投票

在 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-specation-mini-language


28
投票
a = 5
print '%02d' % a
# output: 05

当与左侧的字符串一起使用时,“%”运算符称为“字符串格式化”运算符。 '%d' 是打印出整数的格式化代码(如果该值不是数字,您将收到类型错误)。使用

'%2d
您可以指定长度,并且
'%02d'
可用于将填充字符设置为 0 而不是默认空格。
    


23
投票
阅读更多
这里


10
投票

>>> f'{a:02d}' '05'



9
投票
就是这么简单


5
投票

print("%02d" % a)



5
投票

我的方法是将数字保留为数字,直到你想将其转换为字符串:

>>> num = 11 >>> padding = 3 >>> print(str(num).zfill(padding)) 011



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']



1
投票


0
投票

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

分解一下,你:

    首先创建一个重复 0 或 X 的列表,在本例中为 100 长,即 arange(100)
  • 将所需的数字添加到字符串中,在本例中为数字 0-99,即“i”
  • 仅保留右手 5 位数字,即 '[-5:]' 用于取子集
  • 输出为编号列表,均为5位数字

0
投票

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)

© www.soinside.com 2019 - 2024. All rights reserved.