Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос по боту на питоне

Агент 38 38 Знаток (252), на голосовании 2 месяца назад
У меня перестал работать бот, и при запуске выдает вот эту ошибку: Bot token is not defined.
При этом он перестает работать только если я убираю данную функцию:

 def SendWeather(): 
while True:
named_tuple = time.localtime()
time_string = time.strftime("%H", named_tuple)
if time_string == "23":
named_tuple1 = time.localtime()
time_string1 = time.strftime("%H:%M", named_tuple)
if time_string1 == "00:00" or "00:01":
bot.send_message(OurChatId, "мы все умрем")
(кому интересно она отвечает за отправку прогноза погоды на завтра)
У меня вообще нет идей почему он перестал работать. В общем если кто знает в чем причина подскажите (и буду очень благодарен если кто то подскажет что не так с это функцией, ибо как я ее не крутил она не хочет работать и отправлять сообщение)
Голосование за лучший ответ
rdth zxdf Мастер (1071) 3 месяца назад
мейби проблема в функции SendWeather:
Ошибка в условии:
 if time_string1 == "00:00" or "00:01": 
Условие всегда будет истинным из-за неправильного синтаксиса. or "00:01" всегда возвращает True, поскольку непустая строка считается истинной.

Правильное условие должно быть:
 if time_string1 == "00:00" or time_string1 == "00:01": 
И цикл while True без задержки, добавь в стиле:
 time.sleep(60) 
что-то в стиле таккого варианта попробуй может заработает:
 def SendWeather(): 
while True:
current_time = time.localtime()
current_hour = time.strftime("%H", current_time)

if current_hour == "23":
current_minute = time.strftime("%H:%M", current_time)
if current_minute == "00:00" or current_minute == "00:01":
bot.send_message(OurChatId, "мы все умрем")
time.sleep(60)

time.sleep(60)
Агент 38 38Знаток (252) 3 месяца назад
Большое спасибо! Постоянно забываю добавить переменную после or
rdth zxdf Мастер (1071) Агент 38 38, Пожалуйста)
ǫᴜᴢᴢ Мастер (1579) 3 месяца назад
if time_string1 == "00:00" or "00:01":
Так это не работает. Правильно: if time_string1 == "00:00" or time_string1 == "00:01":
Похожие вопросы