显示带前导零的数字
如何为所有少于两位数的数字显示前导零?
1 → 01
10 → 10
100 → 100
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何为所有少于两位数的数字显示前导零?
1 → 01
10 → 10
100 → 100
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(19)
在Python 2(和Python 3)中,你可以这样做:
基本上 % 就像
printf
或sprintf
(参见 文档)。对于 Python 3.+,也可以使用
实现相同的行为格式
:对于 Python 3.6+,可以使用 f 字符串:
In Python 2 (and Python 3) you can do:
Basically % is like
printf
orsprintf
(see docs).For Python 3.+, the same behavior can also be achieved with
format
:For Python 3.6+ the same behavior can be achieved with f-strings:
您可以使用
str.zfill
:印刷:
You can use
str.zfill
:prints:
在 Python 2.6+ 和 3.0+ 中,您可以使用
format()< /code>
字符串方法:
或使用内置(对于单个数字):
请参阅 PEP-3101 新格式化功能的文档。
In Python 2.6+ and 3.0+, you would use the
format()
string method:or using the built-in (for a single number):
See the PEP-3101 documentation for the new formatting functions.
印刷:
prints:
在 Python >= 3.6 中,您可以使用引入的新 f 字符串来简洁地执行此操作:
使用 val 的变量="https://docs.python.org/3/library/string.html#grammar-token-fill" rel="noreferrer">
填充
值0
和宽度
< /a>2
。对于您的具体示例,您可以在循环中很好地执行此操作:
打印:
有关 f 字符串的更多信息,请查看 PEP 498 介绍它们的地方。
In Python >= 3.6, you can do this succinctly with the new f-strings that were introduced by using:
which prints the variable with name
val
with afill
value of0
and awidth
of2
.For your specific example you can do this nicely in a loop:
which prints:
For more information on f-strings, take a look at PEP 498 where they were introduced.
或者这样:
print '{0:02d}'.format(1)
Or this:
print '{0:02d}'.format(1)
结果:
阅读文档中的有关使用 % 进行字符串格式化的更多信息。
results in:
Read more information about string formatting using % in the documentation.
Pythonic 方法来做到这一点:
这样,如果原始字符串的长度大于 string_width,则原样返回。 示例:
结果:
The Pythonic way to do this:
This way, the original string is returned unchanged if its length is greater than string_width. Example:
Results:
或者另一种解决方案。
Or another solution.
它内置于 python 中,具有字符串格式
Its built into python with string formatting
您可以使用f 个字符串来完成此操作。
这将打印恒定长度 8,并用前导
0
填充其余部分。You can do this with f strings.
This will print constant length of 8, and pad the rest with leading
0
.我就是这样做的:
基本上 zfill 获取要添加的前导零的数量,因此很容易获取最大的数字,将其转换为字符串并获取长度,如下所示:
This is how I do it:
Basically zfill takes the number of leading zeros you want to add, so it's easy to take the biggest number, turn it into a string and get the length, like this:
使用格式字符串 - http://docs.python.org/lib/typesseq-strings。例如
:
Use a format string - http://docs.python.org/lib/typesseq-strings.html
For example:
您也可以这样做:
这将返回一个字符串。
You could also do:
which will return a string.
使用:
或者使用
math
模块:Use:
Or with the
math
module:所有这些都会创建字符串“01”:
All of these create the string "01":
这将是 Python 方式,尽管为了清楚起见我会包含参数 - "{0:0>2}".format(number),如果有人想要 nLeadingZeros 他们应该注意他们也可以这样做:"{0:0>2}".format(number) {1}}".format(数字, nLeadingZeros + 1)
This would be the Python way, although I would include the parameter for clarity - "{0:0>2}".format(number), if someone will wants nLeadingZeros they should note they can also do:"{0:0>{1}}".format(number, nLeadingZeros + 1)
如果处理一位或两位数字:
'0'+str(number)[-2:]
或'0{0}'.format(number)[-2 :]
If dealing with numbers that are either one or two digits:
'0'+str(number)[-2:]
or'0{0}'.format(number)[-2:]