← Все вопросы

Простая задача на оценки: как написать if/elif, чтобы по баллу выдать «отлично/хорошо/плохо»?

Задан 20 месяцев назад216 просмотров2 ответа
5

Школьная задачка: ввести оценку от 1 до 5 и вывести словами. Я написал кучу отдельных if, и почему-то иногда печатается сразу два варианта. Как правильно сделать цепочку условий, чтобы сработал только один?

2 ответа

10
✓ Принятый ответ — помог автору

Когда вариантов несколько и подойти должен только один, используй цепочку if / elif / else, а не отдельные if:

mark = int(input('Оценка: '))
if mark == 5:
    print('отлично')
elif mark == 4:
    print('хорошо')
elif mark == 3:
    print('удовлетворительно')
else:
    print('плохо')

Как только одно из условий сработало, остальные elif пропускаются — поэтому печатается ровно один ответ. У тебя печаталось два, потому что отдельные if проверяются каждый независимо.

4

Если нужно проверять диапазоны, а не точные значения, удобно идти от большего к меньшему:

if score >= 85:
    print('5')
elif score >= 70:
    print('4')
elif score >= 50:
    print('3')
else:
    print('2')

Порядок важен: сработает первое подходящее условие.

Ваш ответ

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