Search Header Logo
Обработка исключений

Обработка исключений

Assessment

Presentation

Information Technology (IT)

9th - 12th Grade

Practice Problem

Medium

Created by

Светлана Петрова

Used 1+ times

FREE Resource

32 Slides • 10 Questions

1

Обработка исключений в Python 
(try-except-finally)

2

Авторы

Колесникович Семён

Петрова Светлана
Шиманович Юлия

3

Теоретическая часть

4

Зачем это нужно?

Представьте себе обычное утро...

Каждый день вы готовите чай по привычному алгоритму. Но что, если что-то пойдет не так?

Сценарий 1: Без "запасного плана"

Ваши действия:

1. Беру чайник
2. Открываю кран → ❌ Воды нет!
3. ...и всё. Тупик.

Результат: Вы остаетесь без чая. Весь ваш утренний ритуал разрушен из-за одной неожиданности.

Сценарий 2: С "запасным планом"

Ваши действия:
1. Беру чайник

2. Пытаюсь налить воду из крана → ❌ Воды нет!

3. Вспоминаю: "А у меня же есть бутыль с водой!"

4. Наливаю воду из бутыли

Продолжаю готовить чай как обычно

Результат: Небольшая заминка, но чай готов! Утро спасено.

Это и есть обработка исключений!

5

Введение

​Любая программа сталкивается с ситуациями, которые невозможно предсказать на этапе написания кода. Для управления такими ошибками в Python существуют исключения.

Исключения (exceptions)это событие обработки ошибок во время выполнения программы. Они позволяют программе продолжить работу после обнаружения ошибки, а не завершаться аварийно.

Почему исключения важны:

предотвращают аварийное завершение программы;

позволяют корректно обрабатывать ошибки;
улучшают пользовательский опыт;

помогают в отладке и логировании.

Логирование — это процесс записи информации о событиях, действиях и состояниях системы или приложения в специальные файлы (логи)

6

Базовый синтаксис try-except

media

Структура обработки исключений

media

Пример с делением на ноль

7

Часто возникающие типы исключений в Python

media

8

Multiple Choice

Question image

Какое исключение нужно подставить вместо ?, чтобы программа корректно обработала ошибку, возникающую в блоке try?

1

ValueError

2

TypeError

3

SyntaxError

4

NameError

9

Multiple Choice

Question image

Какое исключение нужно подставить вместо ?, чтобы программа корректно обработала ошибку, возникающую в блоке try?

1

ValueError

2

TypeError

3

SyntaxError

4

NameError

10

Multiple Choice

Question image

Какое исключение нужно подставить вместо ?, чтобы программа корректно обработала ошибку, возникающую в блоке try?

1

ValueError

2

FileNotFoundError

3

ZeroDivisionError

4

KeyError

11

Multiple Choice

Question image

Какое исключение нужно подставить вместо ?, чтобы программа корректно обработала ошибку, возникающую в блоке try?

1

KeyError

2

NameError

3

SyntaxError

4

ValueError

12

Multiple Choice

Question image

Какое исключение нужно подставить вместо ?, чтобы программа корректно обработала ошибку, возникающую в блоке try?

1

KeyError

2

SyntaxError

3

IndexError

4

NameError

13

Multiple Choice

Question image

Какое исключение возникнет?

1

ValueError

2

SyntaxError

3

IndexError

4

NameError

14

Иерархия исключений в Python

Основные классы исключений

media

15

Обработка нескольких исключений

Вариант 1. Разные обработчики для разных исключений

Пример

media
media

16

Обработка нескольких исключений

Вариант 2. Один обработчик для разных исключений

Пример

media
media

17

Обработка нескольких исключений

Вариант 3. Общий обработчик с получением информации

media

Пример

media

18

Multiple Choice

Question image

Что выведет этот код?

1

пустую строку

2

TypeError

3

ValueError

4

SyntaxError

19

Multiple Choice

Question image

Что выведет этот код?

1

Ошибка типов данных

2

Другая ошибка

3

Ошибка индексации

4

0

20

Fill in the Blank

Question image

В какой последовательности будут возникать исключения, если убрать try-except?

21

Multiple Choice

Question image

Что выведет программа?

1

Нельзя преобразовать в число

2

Индекс вне диапазона

3

[1, 2, 10]

4

Переменная не определена

22

Блоки else и finally

Полная структура обработки исключений

media
media

23

try, except и finally

Пример

Структура обработки исключений
try-except-finally

media
media
media

25

Практическая часть

26

Задание 1

Условие
Перед вами простая программа-калькулятор, которая делит два введенных пользователем числа. Однако если пользователь введет не числа или попытается разделить на ноль, программа аварийно завершится. Ваша задача — интегрировать в предоставленный код конструкцию try-except, чтобы обработать две возможные ошибки:

ValueError — если введено не число;

ZeroDivisionError — если делитель равен нулю.
При возникновении любой из этих ошибок программа должна вывести понятное сообщение и продолжить работу (или корректно завершиться).

Исходный код для модификации:

media

27

Задание 1

Блок-схема

Код программы

media
media

28

Задание 1

Пример запуска программы

media

29

Задание 2

Условие
Описать функцию, которая будет проверять, является ли вводимое число с клавиатуры целым числом используя конструкцию try-except

30

Задание 2

Блок-схема

Код программы

media
media

31

Задание 2

Пример запуска программы

media

32

Задание 3

Условие
Напишите программу, которая:

- запрашивает у пользователя индекс;

- пытается получить элемент из заранее заданного списка fruits = ["яблоко", "банан", "апельсин", "киви"] по этому индексу;

- затем запрашивает число и пытается вычислить «магическое число»: 100 / (5 - введённое_число).

Обработайте разными обработчиками возможные исключения:

ValueError — если пользователь ввёл не число там, где это ожидается.

IndexError — если индекс выходит за границы списка.

ZeroDivisionError — если в формуле 100 / (5 - число) знаменатель равен нулю (то есть, если пользователь ввёл 5).

Любое другое исключение (Exception) — для перехвата непредвиденных ошибок. Для этого общего случая выведите информацию об исключении, используя as e.

33

Задание 3

Блок-схема

Код программы

media
media

34

Задание 3

Пример запуска программы

media

35

Задание 4

Условие
Вы пишете систему регистрации героя для текстовой игры.
Программа должна:

- запросить у пользователя ввести имя героя (строку);
- проверить введённое имя по следующим правилам:

1) Имя не должно быть пустым.

2) Длина имени должна быть от 2 до 20 символов.

3) Если имя не соответствует какому-либо правилу, программа должна выбросить исключение ValueError с понятным сообщением об ошибке.

Используйте конструкцию try-except-finally:

- в блоке try происходит ввод и проверка имени;
- в блоке except перехватывается ValueError и выводится сообщение об ошибке;

- в блоке finally выполняется гарантированное действие — вывод на экран итогового статуса регистрации. Например: Проверка имени героя завершена.

Если имя прошло все проверки, программа должна вывести приветственное сообщение.

36

Задание 4

Блок-схема

Код программы

media
media

37

Задание 4

Пример запуска программы

media

38

Задание 5

Условие
Напишите программу, которая моделирует простую игру: битва с драконом. У дракона есть здоровье = 100.

Программа в цикле предлагает «нанести удар» (ввести число от 1 до 20) или «выйти» (ввести 0).

1) Если сила удара будет превышать 20 урона, то меч сломается и игра завершиться поражением.
2) Если количество ударов будет превышать 10, то результат «Герой устал махать мечом в пустую». От здоровья отнимается введённое число.

3) Если здоровье опускается до 0 или ниже, игра завершается поражением.

Обработайте исключения:

ValueError — если введено не число.

если здоровье ушло в минус (моделируйте это условием if health <= 0).

Используйте блок finally, чтобы гарантированно выводить итоговое состояние здоровья и количество сделанных ходов после каждой игровой итерации, независимо от того, была ошибка ввода или игра завершилась нормально.

39

Задание 5

Блок-схема

media
media

40

Задание 5

Код программы

media
media

41

Задание 5

Пример запуска программы

media

42

Рефлексия

В процессе разработки проекта мы столкнулись с задачей визуального отображения логики обработки исключений в блок-схемах. Одновременно возникла трудность дидактического характера: необходимо было выделить абсолютно базовую информацию по теме, отделив её от второстепенных деталей. Мы не могли точно знать, с каким уровнем подготовки учащихся столкнёмся, поэтому приняли решение ориентироваться строго на темы, из списка основных.
Удалось заложить хорошую основу проекта. Нам помогла понятная аналогия с утренними делами — она связала жизненную ситуацию с абстрактной темой исключений. Также мы сделали интерактивные тесты по нашей теории, которые помогают сразу проверить, понял ли материал слушатель.

Из улучшений мы видим работу над оформлением. Блок-схемы правильные, но их можно сделать ярче и современнее, чтобы они лучше привлекали внимание. Ещё было бы здорово добавить короткие видео с запуском программ — так работа кода станет более наглядной и живой.

Обработка исключений в Python 
(try-except-finally)

Show answer

Auto Play

Slide 1 / 42

SLIDE