RoMoN777
@RoMoN777
программист любитель на python

Как сделать список в операторе?

ввожу текст в переменную text...
так же есть список отвечающий за фразы приветствия...
делаю условие...
text = input()
list_hello = ["хай", "добрый день", "привет"]
if text in list_hello: 
___print("не важно")

но...
Смотрите работает это так...
поменять местами text и list_hello я не могу. выдает ошибку: список должен быть справа в условии
Если ввожу слово "привет" то код работает...
Но! Стоит написать "привет друг" и код уже не работает...
Помогите создать условие что если в переменной text фраза содержащая слово из списка то условие выполняется...
Другими словами...
Ввожу текст в переменную, если там в строке есть слово из списка то переменная верна...
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
если там в строке есть слово из списка


Перебираете список
Проверяете наличие из списка

for word in list_hello:
  if word in text:
    print('any')
    break
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@duff89
Как вариант можно разделить text на отдельные слова через split(), а потом уже в цикле for проверять есть такое слово в списке или нет
Ответ написан
Комментировать
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Вместо списка используйте множество, также преобразуйте фразу в множество и делайте пересечение множеств. Если не нулевое - значит слово из фразы присутствует в множестве.
Но это всё равно слабый механизм. Словоформы не проверяются…

Ну и, конечно, до ИИ этому всему как до Юпитера пешком
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
Либо как это сделал soremix , либо вот так, однострочником:
if any(word in text for word in list_hello):
    print('Oi!')

Но и тут много подводных камней. "превед" такой подход не опознает, а вот на "нехай" сработает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы