Python中将数字格式化时,有些时候需要将数字格式化, 为了显示美观,需要补零。今天在写代码时,看见别人的奇怪写法,觉得有必要在这里把Python更好的写法重写一下。
看到的别人的代码
for i in range(99):
num_str = str(i)
if len(num_str) > 1:
num_str = '0' + str(i)
print(num_str)
看到这段代码,我的三观被刷新了。如果补零比较多, 确实代码的行数可观。
常见和不常见的格式化补零方法
for i in range(99):
num_str = '%02d' % i
print(num_str)
for i in range(99):
# .format格式化
num_str2 = '{:02d}'.format(i)
print(num_str2)
# f-string格式化
num_str2 = f'{i:02d}'
print(num_str2)
# 数字已经转成了字符串格式
# Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。
num_str1 = '123'
num_str2 = '-123'
print(num_str1.zfill(5)) # 00123
print(num_str2.zfill(5)) # -0123