Лаборатории отладки
Пять коротких, специально сломанных примеров — потренируем один и тот же навык: предсказать, запустить, изучить, исправить.
Пять коротких лабораторий — специально сломанный код, чтобы потренироваться находить и чинить проблему по одному и тому же алгоритму: предсказать → запустить → изучить → исправить → объяснить себе, почему это сработало.
1. Предскажите: прочитайте код ниже — как вы думаете, что произойдёт?
print("Привет, мир!
2. Запустите — вы увидите: SyntaxError: unterminated string literal
3. Исправление:
print("Привет, мир!")
4. Почему: у открывающей кавычки не было пары — Python не понял, где заканчивается текст.
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 не «догадывается» об опечатках — для него это два разных имени.
1. Предскажите: прочитайте код ниже — как вы думаете, что произойдёт?
print("Начало")
print("Продолжение")
2. Запустите — вы увидите: IndentationError: unexpected indent
3. Исправление:
print("Начало")
print("Продолжение")
4. Почему: у второй строки появился отступ, которого там быть не должно — вне блоков (if/for/def, которые встретятся в следующих главах) все строки должны начинаться с одной и той же позиции.
1. Предскажите: прочитайте код ниже — как вы думаете, что произойдёт?
name = "Анна"
city = "Москва"
print("Привет,", city)
2. Запустите — вы увидите: Привет, Москва (а должно быть — имя)
3. Исправление:
name = "Анна"
city = "Москва"
print("Привет,", name)
4. Почему: программа выполнилась без единой ошибки — но перепутаны переменные. Это самый коварный тип бага: Python не может знать, что вы имели в виду не то, что написали.
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 и выбранный интерпретатор в редакторе.