Python实现mm:ss格式输入倒计时器 解决时间格式拆分问题
倒计时计时器问题修复方案
核心问题定位
代码问题确实出在循环前的时间拆分逻辑:
- 直接用下标切片的方式拆分
mm:ss格式字符串完全错误,time_sec[:0]返回空字符串,转int会直接抛出异常 - 额外引入的
temp变量逻辑冗余,无法适配分钟为两位数的场景 - 打印补零的实现方式不符合需求
修复后的可运行代码
import time def countdown(time_str): # 按冒号拆分时间字符串,分别拿到分钟和秒 minutes, seconds = map(int, time_str.split(':')) while True: # 格式化输出mm:ss格式,自动补前导零 print(f'\r{minutes:02d}:{seconds:02d}', end='') # 倒计时结束判断 if minutes == 0 and seconds == 0: break time.sleep(1) # 秒数递减逻辑 seconds -= 1 if seconds < 0: seconds = 59 minutes -= 1 print('\nSTOP') x = input("Countdown Time Limit: ") countdown(x)
关键修改说明
- 拆分字符串改用
split(':')方法,直接按分隔符切分分钟和秒,适配任意合法的mm:ss格式输入 - 移除冗余的
temp变量,使用Python字符串格式化语法{变量:02d}自动实现不足两位时补前导零的效果 - 调整倒计时结束判断逻辑,避免多减一秒的问题
- 优化秒数递减的顺序,避免出现负数展示的问题
内容的提问来源于stack exchange,提问作者Dean1244
相关产品推荐
相关产品推荐

