如何在Python中使用range函数时为数字左侧补0生成4位字符串?
生成4位补零的数字序列
正确实现方式
- 用f-string格式化(推荐)
直接遍历整数范围,对每个数字做4位补零格式化:
# 逐个输出 for num in range(1, 7): print(f"{num:04d}") # 存成列表 time_list = [f"{num:04d}" for num in range(1, 7)] # 结果:['0001', '0002', '0003', '0004', '0005', '0006']
- 用str.zfill()方法
把每个整数转成字符串后,调用zfill(4)补零:
time_list = [str(num).zfill(4) for num in range(1, 7)]
你之前的写法为什么不对
range(0001, 0007):Python不支持无前缀的前导零整数(会触发语法错误),而且range生成的是整数,本身不会带前导零格式。range(1,7).zfill(4):zfill()是字符串专属方法,range对象没有这个属性,必须先把每个整数转成字符串再处理。- 错误循环写法:正确的循环逻辑是遍历range里的每个元素,而不是直接对range对象调用zfill,正确格式应该是
for t in a:再对每个t做格式化处理。
内容的提问来源于stack exchange,提问作者Maya Madajewicz
相关产品推荐
相关产品推荐

