python 3.4 字符串操作——截断前导零

python 3.4 string manipulation - truncating leading zeros

有许多关于此主题的现有帖子,但我无法让这段简单的代码正常工作。我试了很多次都没有成功...

per = 5


if per < 10 == True:
    ms = 'fwd_%sd' % str(per).zfill(2)
else:
    ms = 'fwd_%sd' % per

if per < 10 == True:
    a = format(per, 'fwd_02d')
else:
    a = 'fwd_%sd' % per

结果应该是'fwd_05d',但我只能得到'fwd_5d'。

其中,我看过:

Display number with leading zeros

Add leading zero python

请帮忙!

您可以使用 str.format,如果您实际上除了填充之外什么都不做,只需使用 ms = 'fwd_{:02}d'.format(per) 并忘记 if/else,只有小于 10 的数字会用 0 填充. {:02} 中的 0 是要填充的内容,2 是要填充的大小。

ms = 'fwd_{:02}d'.format(per)

另外注意 if per < 10 == True:if per < 10:

相同

您可以只创建一个 temp str 变量,检查它是否小于 10,并在需要时在前面添加一个零。此外,您不应该有一个 if 语句,然后检查它是否等于 true。它是多余的,并且会降低您的代码的可读性。

per = 5

if per < 10:
    perStr = '0' + str(per)

print('fwd_' + perStr + 'd')