Несколько условий python
Python 3
Есть список mis, который в себе содержит распознанные слова. При запуске код игнорирует любые слова в списке и выполняет действия при первом условии (строки 2-4).
if ('открой' or 'запусти' or 'open' in mis):
say('секунду...')
open(mis)
elif 'остановись' in mis:
print('Без Б')
say("Код остановлен")
sys.exit()
else:
do(hear())
Вопросы:
- Почему он выполняет первое условии, если в листе не было слов из условия?
- Как сделать так, чтобы было несколько вариантов слов для в условии для исполнения?
Хотелось бы решение без повторения "in mis" как ниже:
if ('открой' in mis or 'open' in mis):
say("секунду...')
...
Ответы (1 шт):
Автор решения: Victor VosMottor thanks Monica
→ Ссылка
- Непустая строка всегда истинна в питоне. Стало быть:
'открой' or 'запусти' or 'open'— Всегда True. - Вы хотите:
if any(word in mis for word in ('открой', 'запусти', 'open')):
...
OR
if any(map(lambda word: word in mis, ('открой', 'запусти', 'open'))):
...