← Все вопросы
Как сравнить ответ пользователя без учёта регистра, чтобы «Да», «да» и «ДА» считались одинаково?
5
Делаю программу, которая спрашивает «Продолжить? (да/нет)». Но если пользователь напишет Да или ДА, моё условие if answer == 'да' не срабатывает. Не хочу перечислять все варианты написания. Как сделать сравнение без разницы в больших/маленьких буквах?
2 ответа
10
✓ Принятый ответ — помог автору
Приведи введённую строку к нижнему регистру методом .lower() перед сравнением — тогда все варианты написания станут одинаковыми:
answer = input('Продолжить? (да/нет): ').lower()
if answer == 'да':
print('продолжаем')
'Да'.lower(), 'ДА'.lower() — всё превращается в 'да'. Заодно полезно добавить .strip(), чтобы убрать случайные пробелы по краям: input().strip().lower(). Есть и .upper() — тот же смысл, но приводит к ВЕРХНЕМУ регистру.
3
Если хочешь принять и «да», и «д», и «yes», проверяй вхождение в набор:
if answer in ('да', 'д', 'yes', 'y'):
...
Вместе с .lower() это покрывает почти любой ввод.
Ваш ответ
Войдите, чтобы ответить на вопрос.