Нужно задать discount без лишней вложенности: если country == 'RU' и is_premium истина → 10%; если country == 'RU' и не premium → 0; иначе → 5%. Какой вариант логики if/elif/else корректен?
A
if country == 'RU' and is_premium → 10%; elif country == 'RU' → 0; else → 5%B
if country == 'RU' → 0; elif country == 'RU' and is_premium → 10%; else → 5%C
if country != 'RU' → 5%; elif is_premium → 0; else → 10%D
if country == 'RU' or is_premium → 10%; else → 5%Правильный ответ. Сначала ставьте более специфичное условие (
country и is_premium вместе), затем более общее (country == 'RU').Разбор
Если начать с if country == 'RU', то премиальные пользователи из RU попадут в эту ветку и до проверки is_premium дело не дойдёт. Поэтому комбинированное условие country == 'RU' and is_premium должно идти первым, а затем можно отдельно обработать оставшийся случай country == 'RU'.
Проверь себя · 1/3разбор после ответа
Нужно пройти по дням 1..7 включительно. Какой вызов
range() даст именно эти значения?Ещё вопросы по теме «Циклы и условия»
- В цепочке `if`/`elif`/`else` условия проверяются сверху вниз. Если сначала стоит `if amount > 100`, а затем `elif amount > 200`, то при `amount = 250` какая ветка выполнится?
- Есть словарь выручки по странам `revenue_by_country = {'RU': 100, 'KZ': 50}`. Как корректно посчитать сумму значений через цикл `for`?
- Нужно найти индекс первого отрицательного значения в списке `amounts = [10, 0, -5, 7]`. Выполняется `idx = None`, затем цикл `for i, a in enumerate(amounts):`, и при `if a < 0:` выполняются `idx = i` и `break`. Чему будет равно `idx` после выполнения?
- Есть списки пользователей и трат: `users = ['u1', 'u2']` и `spends = [100, 200]`. После `d = {}`, в цикле `for u, s in zip(users, spends):` выполняется `d[u] = s`. Чему равно `d['u2']`?
- Нужно сегментировать пользователей по `orders_cnt`: 0 → `'new'`, 1–4 → `'low'`, 5+ → `'high'`. Какой порядок условий в цепочке `if`/`elif`/`else` корректный?
- Все вопросы по «Циклы и условия» →