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

for, while, if/elif/else, break, continue — управление потоком выполнения программы. Задачи на циклы проверяют умение итерироваться по сложным структурам, обрабатывать граничные случаи и писать читаемую логику. Часто дают задачу, где нужно обойти вложенные данные или реализовать несложный алгоритм.

Всего в этом разделе 20 вопросов. Каждый — с правильным ответом и кратким разбором теории. Разбито на 4 части по 5 вопросов.

Коллекции и структуры данныхГенераторы списков и встроенные функцииИсключения и отладкаРабота с файлами: JSON и CSVФункции и аргументыИтераторы и генераторыNumPy: основыPandas и DataFrameСинтаксис и типы данных

Вопросы 15 из 20

1Нужно пройти по дням 1..7 включительно. Какой вызов `range()` даст именно эти значения?
A`range(7)`
B`range(1, 8)`
C`range(1, 7)`
D`range(0, 7)`
Ответ: В `range(start, stop)` верхняя граница `stop` не включается.

Чтобы получить значения 1..7, нужно задать `stop` равным 8: `range(1, 8)`. Это типичная ошибка «на 1» при циклах и окнах.

2Чему будет равно `s` после выполнения кода: `s = 0`; цикл `for x in [1, 2, 3, 4]:`; внутри при `if x == 3: break`, иначе выполняется `s += x`?
A0
B1
C3
D6
Ответ: `break` завершает весь цикл, поэтому элементы после условия `break` не будут обработаны.

Сначала `s` увеличится на 1 и 2. Когда `x` станет 3, сработает `break`, и цикл закончится, не добавив 3 и 4. Итог: `s` равно 3.

3Что будет в `days` после кода: `days = []`; затем цикл `for i in range(3):`; внутри выполняется `days.append(i)`?
A`[0, 1, 2]`
B`[1, 2, 3]`
C`[0, 1, 2, 3]`
D`[2, 1, 0]`
Ответ: `range(3)` генерирует значения 0, 1, 2 — именно они попадут в список.

Цикл `for i in range(3):` пройдёт по трём значениям: 0, 1, 2. На каждой итерации выполняется `days.append(i)`, поэтому `days` станет `[0, 1, 2]`.

4Есть список оплат по заказам `amounts = [0, 100, 50, 0]`. Код: `cnt = 0`; `for a in amounts:`; если `if a > 0:` то `cnt += 1`. Чему равен `cnt`?
A4
B1
C0
D2
Ответ: Частый паттерн: пройти `for` по значениям и посчитать количество элементов, удовлетворящее условию `if`.

Положительные оплаты в списке — 100 и 50. Для них условие `a > 0` истинно, поэтому `cnt` увеличится дважды. Нули не увеличат счётчик. Итог: 2.

5В цикле по заказам вы хотите пропустить невалидную запись и продолжить обработку остальных. Что использовать внутри цикла?
AИспользовать `break`.
BИспользовать `return`.
CИспользовать `continue`.
DИспользовать `pass`.
Ответ: `continue` пропускает текущую итерацию, не завершая цикл.

`break` завершит цикл и вы не обработаете оставшиеся записи. `return` выйдет из функции целиком. `pass` ничего не делает: если после него в теле цикла есть код, он продолжит выполняться. Для сценария «пропустить и идти дальше» нужен `continue`.

1234

Хотите тренировать интерактивно?

В приложении — таймер, прогресс, стрики и 1700+ вопросов по всем темам.

Тренировать в Telegram

Другие темы: Python

Коллекции и структуры данныхГенераторы списков и встроенные функцииИсключения и отладкаРабота с файлами: JSON и CSVФункции и аргументыИтераторы и генераторыNumPy: основыPandas и DataFrameСинтаксис и типы данных