Страницы

Поиск по вопросам

воскресенье, 29 декабря 2019 г.

Как проверить несколько значений переменной оператором if?

#python #python_3x



  Привет! Работаю над большим проектом. Но свой вопрос объясню на другом
  примере...


Допустим мне нужно создать программу которая только умеет выходить из себя)

Но пользователь может написать по разному слово "выход", например, "ВЫХОД", "VYHOD",
"Выход", "выход" или "ds[jl"(на раскладке 'латиница')и т.д.

Тогда код бы выглядел примерно так

vyhod = input('Введите слово "выход" для выхода из программы:')
if vyhod == 'выход':
    exit(0)
if vyhod == 'Выход':
    exit(0)
if vyhod == 'ВЫХОД':
    exit(0)


и так далее...

Так вот, как можно это всё дело сократить.
Например, я пробовал сделать так:

if vyhod == "выход", "Выход", "ВЫХОД":
    exit(0)


и так 

if vyhod == "выход"; "Выход"; "ВЫХОД":
        exit(0)



  но это invalid syntax)

    


Ответы

Ответ 1



Можно так: if vyhod in ["выход", "Выход", "ВЫХОД"]: exit(0) Но вообще, лучше привести строку к нижнему регистру и проверять только 1: if vyhod.lower() == "выход": exit(0)

Ответ 2



exit = ['Выход', 'DS{JL', 'выход'] word = 'Выход' for i in exit: if i == word: print("Валим") Заводишь все возможные значения в list и пробегаешь по ним в цикле.

Ответ 3



if vyhod == 'выход' or vyhod == 'Выход' or vyhod == 'ВЫХОД': exit(0)

Ответ 4



Завершение программы в Python def ask_for_exit(ask: str, exit_words: list): if input(ask).lower().strip() in map(str.lower, exit_words): raise SystemExit(0) if __name__ == '__main__': exit_words = ["выход", 'exit'] ask_for_exit(f'Для выхода из программы, введите одно из слов {exit_words} в любом регистре:', exit_words) print('работа')

Комментариев нет:

Отправить комментарий