Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 4, 2017 22:57:08

Straik32423
От: Ростов-на-Дону, Россия
Зарегистрирован: 2016-05-18
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему не правильно работает код?

     if ("что ты умеешь" or "что ты можешь") in message.text.lower():
        answer += "На данный момент немного, но я быстро учусь! "

Вроде как, составлено верно. Но почему-то, если в строке содержится “что ты можешь”, то условие не выполняется. Но с “умеешь” работает. Если убрать скобки, то любой текст проходит проверку. Почему так? Как исправить?

На всякий случай. Задумка такая: если в строке содержится одна из заданных подстрок, то добавить к переменной answer текст.

Офлайн

#2 Фев. 5, 2017 02:07:43

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9894
Репутация: +  854  -
Профиль   Отправить e-mail  

Почему не правильно работает код?

 if message.text.lower() in ("что ты умеешь", "что ты можешь"):



Офлайн

#3 Фев. 5, 2017 09:19:08

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Почему не правильно работает код?

Straik32423
Но почему-то, если в строке содержится “что ты можешь”, то условие не выполняется. Но с “умеешь” работает. Если убрать скобки, то любой текст проходит проверку. Почему так? Как исправить?
Чтобы лучше в этом разобраться, рассмотрите более простые примеры:
 >>> "spam" or "eggs" in ("beer", "eggs")
'spam'
>>> ("spam" or "eggs") in ("beer", "eggs")
False
>>> "eggs" or "spam" in ("beer", "eggs")
'eggs'
>>> ("eggs" or "spam") in ("beer", "eggs")
True

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version