📅  最后修改于: 2023-12-03 15:36:43.016000             🧑  作者: Mango
在 Python 中,处理数字时,如果数字长度不足,Python 默认会去除数字前的零,这在一些场景下可能会有问题,比如在时间格式中,需要保留前导零以满足格式要求,但是 Python 默认去除前导零。
有多种方法可以在 Python 中保留数字前的零。
可以使用字符串的 .format()
方法格式化数字并保留前导零,方法如下:
# 保留前导零
number = 5
print('{:02d}'.format(number)) # 输出 05
# 不保留前导零
number = 15
print('{:d}'.format(number)) # 输出 15
在格式化字符串的标识符中使用 0
就可以在数字前补零,2
表示数字占两位,如果数字不足两位,就用 0 补齐。
另一个方法是使用字符串的 zfill()
方法,方法如下:
# 保留前导零
number = '5'
print(number.zfill(2)) # 输出 05
# 不保留前导零
number = '15'
print(number.zfill(2)) # 输出 15
使用 zfill()
方法可以将字符串格式的数字前补零,参数表示字符串的总长度,如果字符串长度不足,就在前面用 0 补齐。
还可以自定义函数实现保留前导零的功能,方法如下:
# 自定义函数保留前导零
def add_zero(number, total_length=2):
""" 数字前补零 """
format_string = '{:0' + str(total_length) + 'd}'
return format_string.format(number)
number = 5
print(add_zero(number)) # 输出 05
number = 15
print(add_zero(number)) # 输出 15
自定义函数 add_zero()
中使用了字符串格式化方法,根据参数 total_length
指定补零后的总长度,并将数字和长度格式化为字符串。
以上是三种保留前导零的方法,在实际开发中根据需要选择使用就可以了。保留前导零可以解决一些特定场景下的需求,如需要按照固定格式输出时间等。