我试着让
length = 001
在 Python 3 中起作用,但无论我如何尝试打印它,它都会截断没有前导零的值 (length = 1
)。我该如何防止这种情况发生,而不必在打印输出之前将 length
转换为字符串?length = 001
在 Python 3 中起作用,但无论我如何尝试打印它,它都会截断没有前导零的值 (length = 1
)。我该如何防止这种情况发生,而不必在打印输出之前将 length
转换为字符串?使用 zfill()
辅助方法来为任何字符串、整数或浮点数添加左边的零填充;它适用于 Python 2.x 和 Python 3.x。
需要注意的是,Python 2已经不再受支持。
示例用法:
print(str(1).zfill(3))
# Expected output: 001
描述:
zfill()
方法用于给定一个字符串,如果其长度小于指定的宽度,则在左侧填充0,否则保持原样。
语法:
str(string).zfill(width)
# Where string represents a string, an integer or a float, and
# width, the desired length to left-pad.
str(x).rjust(3, '0')
,在速度上完全等效,您可以使用任何字符进行填充。 - undefined>>> length = 1
>>> print(f'length = {length:03}')
length = 001
print(f'length = {length:>03}')
(注意 >
)因为如果 length 是一个字符串,例如 length = '1'
,这个例子将会失败。 - bn_ln有很多方法可以实现这个,但在我看来,Python 3.6+ 中最简单的方法是:
print(f"{1:03}")
Python整数没有内在的长度或有效数字数量。如果你想要它们以特定的方式打印,你需要将它们转换为字符串。有几种方法可以让你指定填充字符和最小长度等信息。
要使用零填充到最少三个字符,请尝试:
length = 1
print(format(length, '03'))
我建议这种丑陋的方法,但它有效:
length = 1
lenghtafterpadding = 3
newlength = '0' * (lenghtafterpadding - len(str(length))) + str(length)
我来这里是为了找到一个比这个更轻量级的解决方案!
print(f"{1:03}")
- Anatol
001
。length = 001
与length = 1'(数字)
相同,要获得001
,你应该使用一些字符串格式化(请参见答案)。但是length ='001'
不同,它是一个字符串,你可以通过int(length)
获取数字。 - martin-voj