Python使用datetime模块结合while True循环实现实时时钟的问题求助
解决Python实时时钟时间不更新的问题
你的问题出在获取时间的代码只执行了一次:你在循环外面就调用了datetime.datetime.now(),把程序启动瞬间的时间存到了x和h_m_s里,后面循环只是反复打印这个固定值,自然不会随时间变化。
要实现实时更新,必须把获取当前时间的操作放到循环内部,让每次循环都重新抓取最新时间:
修正后的代码
import datetime import time while True: # 每次循环都重新获取当前时间 current_time = datetime.datetime.now() h_m_s = [current_time.strftime("%H"), current_time.strftime("%M"), current_time.strftime("%S")] print(*h_m_s) time.sleep(1)
更简洁的写法
可以直接把格式化和打印合并,减少代码量:
import datetime import time while True: print(datetime.datetime.now().strftime("%H %M %S")) time.sleep(1)
这样运行后,就会每秒打印一次最新的时分秒,符合你的预期。
内容的提问来源于stack exchange,提问作者fabio_chirnside
相关产品推荐
相关产品推荐

