如何在Python中无休止地运行该函数

问题描述 投票:0回答:1

我想每小时运行一次该函数,但如果我将我的代码插入到bot文件中,他就会停止工作:

now = datetime.datetime.now()      
today = now.day
hour = round(now.hour, 2)

while True:
    if today == now.day and (hour > 22.00 and hour < 23.00):
        bot.send_message(CHAT_ID, random.choice(welcomes))
        today += 1
    else:
        time.sleep(3600)

我如何解决它并实现这个功能?

python infinite-loop telegram-bot
1个回答
0
投票

第三行,

hour = round(now.hour, 2)

round将于22:00至22:59返回22.00,并于23:00至23:59返回23.00

所以,你的情况从来没有得到它。

(hour > 22.00 and hour < 23.00)

22.00不大于22.0023.00不小于23.00。)

纠正的条件是

(hour >= 22.00 and hour < 23.00)

要么

(hour > 22.00 and hour <= 23.00)

或许你想要

(hour == 22.00)
© www.soinside.com 2019 - 2024. All rights reserved.