How do I format a number with a variable number of digits in Python?
本问题已经有最佳答案,请猛点这里访问。
假设我想显示数字123,在前面加上可变数量的填充零。
例如,如果我想用5位数显示它,我的位数为5,给出:
1 | 00123 |
如果我想用6位数字显示它,我会用6位数字表示:
1 | 000123 |
我该如何在python中做到这一点?
如果您在格式化字符串中使用的是
1 2 | >>> 'One hundred and twenty three with three leading zeros {0:06}.'.format(123) 'One hundred and twenty three with three leading zeros 000123.' |
见http://docs.python.org/library/stdtypes.html str.formathttp://docs.python.org/library/string.html格式字符串
下面是一个宽度可变的示例
1 2 | >>> '{num:0{width}}'.format(num=123, width=6) '000123' |
甚至可以将填充字符指定为变量
1 2 | >>> '{num:{fill}{width}}'.format(num=123, fill='0', width=6) '000123' |
有一个名为zfill的字符串方法:
1 2 | >>> '12344'.zfill(10) 0000012344 |
它将用零填充字符串的左侧,使字符串长度为n(在本例中为10)。
1 | '%0*d' % (5, 123) |
在python 3.6中引入了格式化的字符串文本(简称"f-strings"),现在可以用更简洁的语法访问以前定义的变量:
1 2 3 | >>> name ="Fred" >>> f"He said his name is {name}." 'He said his name is Fred.' |
John la Rooy给出的示例可以写成
1 2 3 4 5 6 | In [1]: num=123 ...: fill='0' ...: width=6 ...: f'{num:{fill}{width}}' Out[1]: '000123' |
1 | print"%03d" % (43) |
印刷品
043
使用字符串格式
1 2 3 4 | print '%(#)03d' % {'#': 2} 002 print '%(#)06d' % {'#': 123} 000123 |
此处提供更多信息:链接文本