Какой фрагмент while вероятнее всего приведёт к бесконечному циклу, если список events непустой?

Ai = 0; while i < len(events): i += 1: счётчик растёт и условие в какой-то момент становится ложным
Bi = 0; while i < len(events): pass: счётчик не меняется, условие остаётся истинным на каждой итерации
Ci = 0; while i < len(events): i = i + 1: счётчик растёт обычным присваиванием и цикл завершается
Di = 0; while i < len(events): break: цикл прерывается на первой итерации до проверки условия
Правильный ответ. В while состояние, влияющее на условие, должно меняться, иначе цикл не завершится.

Разбор

Главное правило while — состояние, влияющее на условие, должно меняться внутри тела цикла. В варианте с pass счётчик i никогда не увеличивается, поэтому условие i < len(events) всегда истинно и цикл не завершится. Варианты с i += 1 и i = i + 1 эквивалентны и корректно завершаются. break сразу выходит из цикла на первой итерации, никакого зависания не будет.

Проверь себя · 1/3разбор после ответа
Поле country может быть None или пустой строкой. Нужно заменить его на 'unknown' через if. Какое условие покрывает оба случая короче и идиоматичнее?
Тренировать Python в Telegram

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