Что окажется в out после кода: out = [], внешний цикл for u in ['u1', 'u2'], внутренний for e in ['a', 'b', 'c'], при e == 'b' выполняется break, иначе out.append(u + e)?

A['u1a', 'u1b', 'u2a', 'u2b']: оба внутренних элемента до 'b' добавлены без срабатывания break
B['u1a', 'u2a']: внутренний цикл прерывается на 'b', внешний продолжает обход следующим u
C['u1a', 'u2a', 'u2b']: инструкция break срабатывает один раз и не влияет на следующий u
D['u1a']: инструкция break завершает оба цикла одновременно и больше элементов не добавляется
Правильный ответ. break завершает только ближайший внутренний цикл, внешний цикл продолжает обход.

Разбор

Для u = 'u1' сначала добавится 'u1a', затем при e == 'b' сработает break и внутренний цикл остановится. Внешний цикл перейдёт к u = 'u2' и аналогично добавит 'u2a'. Итог — ['u1a', 'u2a']. Чтобы выйти сразу из обоих циклов, нужен дополнительный флаг или вынос кода в функцию с return, потому что один break всегда прерывает только свой уровень вложенности.

Проверь себя · 1/3разбор после ответа
Есть список оплат по заказам amounts = [0, 100, 50, 0]. Код: cnt = 0; for a in amounts:; если if a > 0: то cnt += 1. Чему равен cnt?
Тренировать Python в Telegram

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