Нужно найти индекс первого отрицательного значения в списке amounts = [10, 0, -5, 7]. Выполняется idx = None, затем цикл for i, a in enumerate(amounts):, и при if a < 0: выполняются idx = i и break. Чему будет равно idx после выполнения?

ANone: исходное значение сохраняется, как если бы цикл не выполнил break ни разу
B0: индекс самого первого элемента, при котором условие сработало бы сразу же
C2: индекс элемента -5, на котором условие истинно и срабатывает break
D3: индекс последнего элемента, как если бы цикл прошёл до конца без выхода
Правильный ответ. Функция enumerate() даёт индекс и значение, а break останавливает цикл на первом совпадении.

Разбор

Пары из enumerate(amounts) идут так: (0, 10), (1, 0), (2, -5), (3, 7). На значении -5 условие a < 0 впервые истинно, поэтому idx становится 2 и сразу срабатывает break — цикл прерывается. Значение None осталось бы только если ни одно условие не сработало. Индекс 0 был бы при отрицательном первом элементе, а 3 — если бы условие сработало на последнем.

Проверь себя · 1/3разбор после ответа
Какой фрагмент while вероятнее всего приведёт к бесконечному циклу, если список events непустой?
Тренировать Python в Telegram

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