В каком случае обычно уместнее выбрать цикл while, а не for?
AКогда нужно последовательно пройти по элементам известного списка
users и обработать каждогоBКогда нужно параллельно пройти по двум спискам сразу, используя обычно
zip() внутри тела циклаCКогда нужно пропустить текущую итерацию по условию через инструкцию
continue внутри тела циклаDКогда количество итераций заранее неизвестно и цикл завершается по условию, обновляемому в теле
Правильный ответ.
for удобен для перебора последовательностей, а while — для повторения «пока условие истинно» с заранее неизвестным числом итераций.Разбор
Если вы перебираете известную коллекцию (список, словарь, строку), обычно выбирают for. Если же цикл должен завершаться по условию, которое меняется внутри тела (например, «пока не встретили признак конца» или «пока счётчик не достиг порога»), то логичнее while. Параллельный обход двух списков и пропуск итерации через continue — отдельные приёмы, не относящиеся к выбору между for и while.
Проверь себя · 1/3разбор после ответа
Есть словарь выручки по странам
revenue_by_country = {'RU': 100, 'KZ': 50}. Как корректно посчитать сумму значений через цикл for?Ещё вопросы по теме «Циклы и условия»
- В цепочке условий сверху стоит проверка `amount > 100`, а ниже — `amount > 200` и заключительная ветка. Для значения 250 нужно отдельное поведение, отличающееся от значений в диапазоне от 100 до 200. Что не так с таким порядком проверок?
- Есть словарь выручки по странам `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` корректный?
- Все вопросы по «Циклы и условия» →