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