You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python定时输出代码异常求助:时间变更后输出未更新

问题分析与解决

你代码的核心问题在于**dt_now的初始化位置错误**——你把dt_now = datetime.datetime.now()写在了while循环外面,这意味着这个变量只会在程序启动时获取一次当前时间,之后循环里反复判断的都是这个固定不变的旧时间。哪怕时间走到14:04,代码里用的还是之前14:03的时间值,所以会一直输出“1”。

解决方法很直接:把获取当前时间的语句移到循环内部,让每次循环都重新获取最新的时间:

import datetime
from time import sleep

while True:
    sleep(1)
    # 每次循环都重新获取当前时间,确保判断的是最新时刻
    dt_now = datetime.datetime.now()
    
    if dt_now.hour == 14 and dt_now.minute == 3:
        print("1")
        sleep(10)
        continue

    if dt_now.hour == 14 and dt_now.minute == 5:
        print("2")
        sleep(10)
        
    else:
        print("3")

额外可以优化的小细节:

  • 可以改用dt_now = datetime.datetime.now().time()只提取时间部分,让判断逻辑更聚焦(不过原逻辑也能正常运行)
  • 连续的sleep可以根据实际需求调整,避免不必要的等待,但不影响核心功能

内容的提问来源于stack exchange,提问作者チルアイス

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 06:50:28