Нужно сегментировать пользователей по orders_cnt: 0 → 'new', 1–4 → 'low', 5+ → 'high'. Какой порядок условий в цепочке if/elif/else корректный?

AСначала if orders_cnt == 0 для 'new', затем elif orders_cnt < 5 для 'low', иначе 'high'
BСначала if orders_cnt < 5 для 'low', затем elif orders_cnt == 0 для 'new', иначе 'high'
CСначала if orders_cnt > 0 для 'low', затем elif orders_cnt >= 5 для 'high', иначе 'new'
DСначала if orders_cnt == 0 для 'new', затем отдельный if orders_cnt < 5 для 'low', иначе 'high'
Правильный ответ. Более специфичное условие (0 заказов) проверяйте раньше более общего (orders_cnt < 5).

Разбор

Если начать с orders_cnt < 5, значение 0 попадёт в этот сегмент и ветка для нулевых заказов уже не сработает. Правильный порядок — сначала выделить частный случай orders_cnt == 0, затем проверить диапазон 1–4 через orders_cnt < 5, а всё остальное отдать в else как 5+. Замена elif на отдельный if ломает взаимоисключение веток и тоже даёт неверные сегменты.

Проверь себя · 1/3разбор после ответа
Есть словарь выручки по странам revenue_by_country = {'RU': 100, 'KZ': 50}. Как корректно посчитать сумму значений через цикл for?
Тренировать Python в Telegram

Ещё вопросы по теме «Циклы и условия»