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

Python时间判断逻辑错误:每30分钟触发事件失效问题排查

问题根源:逻辑运算符优先级错误

你的if语句问题出在逻辑运算符的优先级上——Python里and的优先级比or高,导致你的条件被错误拆分了。

原代码的实际执行逻辑是:

if (time.strftime("%M") == "00") 
    or (time.strftime("%M") == "30" and time.strftime("%S") == "00") 
    or (time.strftime("%S") == "01") 
    or (time.strftime("%S") == "02"):

也就是说,只要秒数是01或02,不管分钟是不是00/30,条件都会成立,这就是为什么每分钟的这几秒都触发事件。

修正方案

你需要把「分钟为00或30」的判断用括号包裹,让它成为一个整体,再和「秒数为00/01/02」的判断用and连接,同时秒数的判断可以用in简化写法,提升可读性:

current_min = time.strftime("%M")
current_sec = time.strftime("%S")
if (current_min == "00" or current_min == "30") and current_sec in ("00", "01", "02"):
    # 执行你的事件逻辑

这样就能保证只有在分钟是00/30,且秒数是00/01/02的时候才进入代码块,完全符合你的预期。

内容的提问来源于stack exchange,提问作者Tasp

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:15:38