Глава 3 · Ваша первая программа на Python

Лаборатории отладки

Пять коротких, специально сломанных примеров — потренируем один и тот же навык: предсказать, запустить, изучить, исправить.

Пять коротких лабораторий — специально сломанный код, чтобы потренироваться находить и чинить проблему по одному и тому же алгоритму: предсказать → запустить → изучить → исправить → объяснить себе, почему это сработало.

Лаборатория 1. Пропущенная кавычка или скобка

1. Предскажите: прочитайте код ниже — как вы думаете, что произойдёт?

сломанный код
print("Привет, мир!

2. Запустите — вы увидите: SyntaxError: unterminated string literal

3. Исправление:

исправлено
print("Привет, мир!")

4. Почему: у открывающей кавычки не было пары — Python не понял, где заканчивается текст.

Лаборатория 2. Неправильное имя переменной

1. Предскажите: прочитайте код ниже — как вы думаете, что произойдёт?

сломанный код
user_name = "Cartesian"
print(usr_name)

2. Запустите — вы увидите: NameError: name 'usr_name' is not defined

3. Исправление:

исправлено
user_name = "Cartesian"
print(user_name)

4. Почему: опечатка в имени — usr_name вместо user_name. Python не «догадывается» об опечатках — для него это два разных имени.

Лаборатория 3. Ошибка отступа

1. Предскажите: прочитайте код ниже — как вы думаете, что произойдёт?

сломанный код
print("Начало")
  print("Продолжение")

2. Запустите — вы увидите: IndentationError: unexpected indent

3. Исправление:

исправлено
print("Начало")
print("Продолжение")

4. Почему: у второй строки появился отступ, которого там быть не должно — вне блоков (if/for/def, которые встретятся в следующих главах) все строки должны начинаться с одной и той же позиции.

Лаборатория 4. Программа работает, но выводит не то

1. Предскажите: прочитайте код ниже — как вы думаете, что произойдёт?

сломанный код
name = "Анна"
city = "Москва"
print("Привет,", city)

2. Запустите — вы увидите: Привет, Москва (а должно быть — имя)

3. Исправление:

исправлено
name = "Анна"
city = "Москва"
print("Привет,", name)

4. Почему: программа выполнилась без единой ошибки — но перепутаны переменные. Это самый коварный тип бага: Python не может знать, что вы имели в виду не то, что написали.

Лаборатория 5. Не тот интерпретатор — привет из главы 2

1. Предскажите: прочитайте код ниже — как вы думаете, что произойдёт?

сломанный код
import requests
print("Пакет найден!")

2. Запустите — вы увидите: ModuleNotFoundError: No module named 'requests' (хотя вы точно его ставили!)

3. Исправление:

исправлено
# в VS Code: Ctrl+Shift+P -> "Python: Select Interpreter"
# выбрать интерпретатор именно из активного .venv проекта

4. Почему: пакет установлен в одно окружение, а код запускается через другое — классическая проблема из главы 2 (раздел 2.16). Проверьте sys.executable и выбранный интерпретатор в редакторе.

Практика: прочитайте traceback (SyntaxError)
Интерактивный ноутбук прямо в браузере — найдите пропущенную скобку и кавычку
Открыть практику →