@Hackerman1
14 лет, плохое зрение, но отличные мозги.

Почему ветка if не работает?

Вот та самая заветная часть кода:
@bot.message_handler(content_types=['text'])
def send_homework(message):
	homework = ''
	if message.text.lower() == 'вася дай дз' or 'дай дз':
		try:
			with open('./Homework.txt', 'r', encoding='utf-8') as f:
				homework = ''.join(f.readlines())
		except:
			bot.send_message(message.chat.id,"Ошибка: файл пустой. Бот оффлайн")
			raise Exception("Файл пустой")
		bot.send_message(message.chat.id, homework)

Почему эта ветка if игнорируется и при любом сообщении, не смотря на то что в Sublime Text сворачивается как ветка кода if или def, выводятся данные из файла?
upd: *Смех куплинова* А теперь работает только часть кода с дз, а првоерка чет игнорится)))
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
Потому что
message.text.lower() == 'вася дай дз' or 'дай дз'
всегда true. А всегда оно true потому, что его вторая часть всегда true - потому что нет сравнения.
Ответ написан
SoreMix
@SoreMix
yellow
Есть только одно сравнение, вам нужно два:
if message.text.lower() == 'вася дай дз' or message.text.lower() == 'дай дз':
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы