← Все вопросы

Как сравнить ответ пользователя без учёта регистра, чтобы «Да», «да» и «ДА» считались одинаково?

Задан 3 месяца назад1.5к просмотров2 ответа
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() это покрывает почти любой ввод.

Ваш ответ

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