МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ
«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»
Методическая разработка
«Обработка исключений try, except в Python»
к дополнительной общеобразовательной
общеразвивающей программе
технической направленности
«Программирование на Python»
Возраст детей: 10-17 лет
Автор: Костычев Вадим Александрович
г. Заречный Пензенской области
2025 г.
Данный методический материал предназначен для преподавателей информатики, программирования и студентов (учащихся), изучающих язык программирования Python. Он может быть использован на лекциях, практических занятиях или для самостоятельного освоения материала.
Цель: формирование у обучающихся навыков обработки исключительных ситуаций в Python с использованием конструкции try...except. Развитие понимания важности устойчивости программы к ошибкам и некорректным входным данным.
Задачи:
-
Познакомить обучающихся с конструкцией try...except.
-
Научить использовать разные блоки обработки исключений.
-
Продемонстрировать работу с несколькими типами исключений.
-
Развить навыки написания безопасного кода.
-
Подготовить обучающихся к работе с распространением исключений и их генерацией.
Конструкция try...except
Конструкция try...except позволяет "ловить" исключения и обрабатывать их, не прерывая выполнения программы.
try:
# Код, в котором может произойти ошибка
except:
# Код, который выполняется при ошибке
Список распространённых исключений и примеров
Исключение | Пример кода | Описание |
SyntaxError | if True: без print() под ним | Ошибка синтаксиса кода |
IndentationError | Нет отступа после def greet(): | Ошибка отступов |
NameError | print(x) при отсутствии x = ... | Использование необъявленной переменной |
TypeError | "5" + 5 | Несоответствие типов данных |
ValueError | int("abc") | Некорректное значение |
IndexError | lst = [1,2]; print(lst[5]) | Выход за границы списка |
KeyError | d = {'a':1}; print(d['b']) | Несуществующий ключ в словаре |
ZeroDivisionError | 10 / 0 | Деление на ноль |
FileNotFoundError | open("nonexistent.txt", "r") | Файл не найден |
ModuleNotFoundError | import nonexistentmodule | Не удалось импортировать модуль |
AttributeError | "hello".append(" world") | Несуществующий метод или атрибут |
Примеры обработки исключений
Пример 1: Обработка деления на ноль
try:
result = 10 / 0
except ZeroDivisionError:
print("Нельзя делить на ноль!")
Пример 2: Обработка нескольких ошибок
try:
x = int(input("Введите число: "))
result = 10 / x
except ZeroDivisionError:
print("Нельзя делить на ноль!")
except ValueError:
print("Это не число!")
Пример 3: Чтение файла с защитой
try:
with open("notes.txt", "r") as f:
print(f.read())
except FileNotFoundError:
print("Файл не найден. Проверьте имя файла.")
Пример 4: Защита доступа к словарю
try:
d = {"name": "Alice"}
print(d["age"])
except KeyError:
print("Такого ключа нет в словаре")
Пример 5: Полная конструкция try-except-else-finally
try:
num = int(input("Введите число: "))
result = 10 / num
except ValueError:
print("Ошибка: введите число")
except ZeroDivisionError:
print("Ошибка: деление на ноль")
else:
print("Результат:", result)
finally:
print("Программа завершена")
Упражнения для самостоятельной работы
-
Напишите программу, которая запрашивает у пользователя список чисел и выводит среднее значение. Используйте обработку ошибок.
-
Реализуйте простую систему авторизации, где пользователь вводит логин и пароль из словаря. Обработайте возможные ошибки.
-
Создайте программу, которая открывает JSON-файл и выводит данные. Используйте обработку ошибок.