如何在数字字符串的左边加上零,使字符串具有特定的长度?
当前回答
对于那些来这里理解而不仅仅是快速回答的人来说。我特别针对时间字符串:
hour = 4
minute = 3
"{:0>2}:{:0>2}".format(hour,minute)
# prints 04:03
"{:0>3}:{:0>5}".format(hour,minute)
# prints '004:00003'
"{:0<3}:{:0<5}".format(hour,minute)
# prints '400:30000'
"{:$<3}:{:#<5}".format(hour,minute)
# prints '4$$:3####'
“0”符号替换为“2”填充字符,默认值为空白“>”符号表示字符串左侧的所有2“0”字符“:”符号format_spec
其他回答
width = 10
x = 5
print "%0*d" % (width, x)
> 0000000005
有关所有令人兴奋的详细信息,请参阅打印文档!
Python 3.x更新(7.5年后)
最后一行现在应该是:
print("%0*d" % (width, x))
即print()现在是一个函数,而不是一个语句。注意,我仍然更喜欢Old School printf()风格,因为IMNSHO,它读起来更好,而且,嗯,我从1980年1月起就一直使用这种符号。某物老狗。。一些东西。。。新技巧。
对于保存为整数的邮政编码:
>>> a = 6340
>>> b = 90210
>>> print '%05d' % a
06340
>>> print '%05d' % b
90210
也可以:
h = 2
m = 7
s = 3
print("%02d:%02d:%02d" % (h, m, s))
因此输出将为:“02:07:03”
str(n).zfill(width)将处理字符串、int、浮点。。。并且兼容Python 2.x和3.x:
>>> n = 3
>>> str(n).zfill(5)
'00003'
>>> n = '3'
>>> str(n).zfill(5)
'00003'
>>> n = '3.0'
>>> str(n).zfill(5)
'003.0'
要填充字符串:
>>> n = '4'
>>> print(n.zfill(3))
004
要填充数字:
>>> n = 4
>>> print(f'{n:03}') # Preferred method, python >= 3.6
004
>>> print('%03d' % n)
004
>>> print(format(n, '03')) # python >= 2.6
004
>>> print('{0:03d}'.format(n)) # python >= 2.6 + python 3
004
>>> print('{foo:03d}'.format(foo=n)) # python >= 2.6 + python 3
004
>>> print('{:03d}'.format(n)) # python >= 2.7 + python3
004
字符串格式文档。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- Printf与std::字符串?
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if