← Все вопросы
Простая задача на оценки: как написать if/elif, чтобы по баллу выдать «отлично/хорошо/плохо»?
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')
Порядок важен: сработает первое подходящее условие.
Ваш ответ
Войдите, чтобы ответить на вопрос.