【问题标题】:How do I continously check if a statement is true我如何不断检查陈述是否正确
【发布时间】:2020-05-25 06:31:29
【问题描述】:

我写了这个小程序来发出警报。基本上你选择一个时间来设置闹钟,它会播放analog-watch-alarm_daniel-simion.wav。 我尝试过使用 while True: 语句,但这似乎不起作用。有人可以帮忙吗?

import time
import datetime
import winsound
from datetime import datetime
lcltime =datetime.now().strftime('%H:%M')
print(lcltime)
while True:
    if lcltime == "22:33":
        winsound.PlaySound("analog-watch-alarm_daniel-simion.wav",  winsound.SND_ALIAS)
        break

【问题讨论】:

  • 好吧。假设lcltime 第一次不是"22:33"。如果您希望以后lcltime 等于"22:33",那么lcltime 必须更改,是吗?你能想出一种方法来实现它吗?例如,在您每次检查值之前?
  • 您可能需要在两次检查之间使用sleep 以保持hogging considerable CPU time 的while 循环。

标签: python alarm


【解决方案1】:

您应该将这一行 lcltime=datetime.now().strftime('%H:%M') 放在 while 循环中。

【讨论】:

    【解决方案2】:

    只需在循环中获取时间变量即可更新计时器。

    import winsound 
    from datetime import datetime
    while True:
        lcltime =datetime.now().strftime('%H:%M')
        if lcltime == "22:51":
            winsound.PlaySound("analog-watch-alarm_daniel-simion.wav",  winsound.SND_ALIAS)
            break
    

    【讨论】:

    • 为什么要导入datetime两次?您导入完整的 datetime 库,然后仅从同一库中导入 datetime
    • 它在 OP 的 MWE 中给出。你也不需要导入时间。已更正!
    猜你喜欢
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多