为何这段代码无法实时刷新当前分钟数?
问题分析与解决
你的代码进入下一分钟后结果不更新,核心原因是时间变量t只在程序启动时获取了一次当前时间,之后循环里一直复用这个固定的旧值,自然不会跟着实际时间变化。
修正方案
把获取当前时间的语句移到while循环内部,让每次循环都重新获取最新的系统时间:
import datetime import time while True: t = datetime.datetime.now() # 每次循环都更新为当前最新时间 nextminute = t.minute + 1 print(f"下一分钟:{nextminute}") print(f"当前分钟:{t.minute}") time.sleep(61) # 注:原代码末尾的print("loop end")永远不会执行,因为while是无限循环,可按需删除
修正说明
- 原代码中
t = datetime.datetime.now()在循环外,只会初始化一次,t始终是程序启动时的时间对象 - 移到循环内后,每次循环都会重新获取当前时间,打印的分钟数就会随实际时间更新了
内容的提问来源于stack exchange,提问作者Alvaro Cunha
相关产品推荐
相关产品推荐

