Что выведет Python: задачи с разбором для начинающих
Предсказать вывод программы проще, если идти по строкам и записывать значения переменных. Не нужно угадывать: небольшой код можно разобрать как последовательность действий. Все примеры ниже относятся к Python 3.
Сразу к самопроверкеДеление и остаток
a = 17
print(a // 5, a % 5)Программа выведет 3 2. Оператор // выполняет деление с округлением вниз, а % возвращает остаток. Здесь 17 = 5 × 3 + 2.
Для отрицательных чисел нельзя считать // простым отбрасыванием дробной части: -17 // 5 равно -4, а -17 % 5 равно 3. Сначала освоите положительные числа, затем проверьте это правило отдельно.
Правая граница range не входит
s = 0
for x in range(1, 5):
s += x
print(s)range(1, 5) даёт 1, 2, 3 и 4. Число 5 не включается. Значения суммы после шагов: 1, 3, 6, 10. На экране будет 10.
Если указать только один аргумент, например range(4), отсчёт начинается с 0: получатся 0, 1, 2, 3.
Что происходит между строками кода?
Учебный пример: складываем 1 + 2 + 3 + 4. Сначала предположите ответ, затем двигайтесь по одной команде. Подсвечена следующая выполняемая строка.
s = 0for x in range(1, 5): s += xprint(s)Первый шаг создаст переменную s со значением 0.
Если пройти все шаги вручную
Сумма s: 0 → 1 → 3 → 6 → 10. В range(1, 5) входят 1, 2, 3, 4. После цикла print(s) выведет 10 один раз.
Переменная хранит новое значение
a = 3
b = a + 2
a = a * 4
print(a, b)Вывод: 12 5. После второй строки b получает значение 5. Последующее изменение a не пересчитывает b автоматически: присваивание не создаёт формулу электронной таблицы.
Как разбирать код без спешки
- Выпишите начальные значения переменных.
- Для цикла запишите последовательность значений счётчика.
- После каждого изменения обновляйте таблицу переменных.
- Отметьте, где именно расположен print: внутри цикла или после него.
- Сначала предскажите ответ сами, затем проверьте запуском.
Почему отступ у print меняет ответ
s = 0
for x in range(1, 4):
s += x
print(s)Здесь print находится внутри цикла: появятся три строки — 1, 3, 6. Если убрать отступ только у последней строки, вывод выполнится один раз после цикла: 6.
Перед подсчётом спросите себя: сколько раз программа дойдёт до команды вывода? Для цикла это часто важнее, чем сразу вычислять сумму.
Обратный range и условие: разбираем каждую итерацию
s = 0
for x in range(7, 0, -2):
if x > 3:
s += x
print(s)Шаг −2 даёт числа 7, 5, 3, 1; правая граница 0 не входит. Проверка x > 3 пропускает только 7 и 5. Сумма меняется так: 7 → 12 → 12 → 12. Ответ — 12.
Что изменится при x ≥ 3?
Добавится число 3, ответ станет 15. Изменение одного знака в условии меняет набор подходящих значений.
Порядок работы: выпишите значения range → проверьте условие для каждого → обновите переменные → выполните print. Для продолжения пригодится разбор рекурсивных вычислений.
break и continue: короткое сравнение
for x in range(1, 5):
if x == 3:
break
print(x)
Вывод: 1 и 2 на разных строках. break полностью завершает цикл. Если заменить break на continue, появятся 1, 2 и 4: пропускается только оставшаяся часть шага при x = 3. После continue сразу начинается следующая итерация. Ниже — короткое видео преподавателя с объяснением.
Проверьте себя
Сначала решите самостоятельно. Затем проверьте ответ или откройте объяснение.
Ответ и объяснение
2. 23 = 7 × 3 + 2, остаток равен 2.
Ответ и объяснение
12. Последовательность: 2, 4, 6. Сумма равна 12.
Ответ и объяснение
16. Сначала 5 + 3 = 8, затем 8 × 2 = 16.
Ответ и объяснение
15. Получаются 8, 5, 2. Их сумма 15; граница 1 не входит.
Ответ и объяснение
3. Цикл обрабатывает 2, 4, 6. Для каждого значения выполняется один вывод.
break и continue: в чём разница
break завершает цикл, continue пропускает только текущую итерацию. Видеопример Никиты Саралашвили — 1 мин 43 с.
Открыть видео во ВКонтакте ↗ Telegram