Python自制计时器脚本运行满1分钟后秒数不重置问题求解
Python计时器问题排查与修复
问题诱因
代码第一次触发number == 60的判断逻辑后,会进入一个没有任何退出条件、也没有60秒阈值判断的嵌套无限while循环。进入该内层循环后,程序永远不会回到外层的阈值判断分支,因此秒数只会持续累加,不会再触发重置操作。
除此之外原代码还存在缩进不规范、import语句位置错误、冗余递归返回逻辑等问题,也会导致执行不符合预期。
修复方案
无需拆分多层循环,所有计数、输出、判断逻辑放在同一个循环内执行即可,修复后的代码如下:
import time def ClockTimer(): seconds = 0 minutes = 0 while True: time.sleep(1) seconds += 1 # 适配第一分钟不显示分钟的输出需求 if minutes == 0: print(f"{seconds} seconds") else: print(f"{minutes} minutes {seconds} seconds") # 到达60秒自动重置秒数、分钟数加1 if seconds == 60: minutes += 1 seconds = 0 # 直接调用函数即可,无需用print包裹 ClockTimer()
修改点说明
- 删除了嵌套的内层无限循环,保证每次秒数累加后都会执行60秒阈值判断
- 统一了输出逻辑,不需要分开处理第一分钟和后续分钟的打印逻辑,代码更简洁
- 修正了原代码的缩进错误,将import语句放到全局位置,符合Python编码规范
- 移除了冗余的返回和递归调用逻辑,避免不必要的执行异常
内容的提问来源于stack exchange,提问作者Synthx
相关产品推荐
相关产品推荐

