Книга «Изучаем Python»



Pdf көрінісі
бет104/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   100   101   102   103   104   105   106   107   ...   238
Байланысты:
2 5343781172763690906

УПРАЖНЕНИЯ

10-3 . Гость: напишите программу, которая запрашивает у пользователя его имя . Введенный 

ответ сохраняется в файле с именем guest .txt .

10-4 . Гостевая книга: напишите цикл while, который в цикле запрашивает у пользователей 

имена . При вводе каждого имени выведите на экран приветствие и добавьте строку с со-

общением в файл с именем guest_book .txt . Проследите за тем, чтобы каждое сообщение 

размещалось в отдельной строке файла .

10-5 . Опрос: напишите цикл while, в котором программа спрашивает у пользователя, по-

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

причину, сохраните текст его ответа в файле .

Исключения

Для управления ошибками, возникающими в ходе выполнения программы, 

в Python используются специальные объекты, называемые исключениями. Если 

при возникновении ошибки Python не знает, что делать дальше, создается объект 

исключения. Если в программу включен код обработки исключения, то выполне-

ние программы продолжится, а если нет — программа останавливается и выводит 

трассировку с отчетом об исключении.

Исключения обрабатываются в блоках 

try

-

except



. Блок 

try


-

except


 приказывает 

Python выполнить некоторые действия, но при этом также сообщает, что нужно де-

лать при  возникновении исключения. С блоками 

try


-

except


 ваши программы будут 

работать даже в том случае, если что-то пошло не так. Вместо невразумительной 

трассировки выводится понятное сообщение об ошибке, которое вы определяете 

в программе.

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

Рассмотрим простую ошибку, при которой Python инициирует исключение. Ко-

нечно, вы знаете, что деление на ноль невозможно, но мы все же прикажем Python 

выполнить эту операцию:



division.py

print(5/0)

Из этого ничего не выйдет, поэтому на экран выводятся данные трассировки:

Traceback (most recent call last): 

  File "division.py", line 1, in  

    print(5/0) 

ZeroDivisionError: division by zero 




196    Глава 10  •  Файлы и исключения

Ошибка, упоминаемая в трассировке  — 

ZeroDivisionError

, — является объектом 

исключения. Такие объекты создаются в том случае, если Python не может выпол-

нить ваши распоряжения. Обычно в таких случаях Python прерывает выполнение 

программы и сообщает тип обнаруженного исключения. Эта информация может 

использоваться в программе; по сути вы сообщаете Python, как следует поступить 

при возникновении исключения данного типа. В таком случае ваша программа 

будет подготовлена к его появлению.

Блоки try-except

Если вы предполагаете, что в программе может произойти ошибка, напишите блок 

try

-

except



 для обработки возникающего исключения. Такой блок приказывает 

Python выполнить некоторый код, а также сообщает, что нужно делать, если при 

его выполнении произойдет исключение конкретного типа.

Вот как выглядит блок 

try

-

except



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

ZeroDivisionError

:

try:


print(5/0)

except ZeroDivisionError:

    print("You can't divide by zero!")

Команда 


print(5/0)

, порождающая ошибку, находится в блоке 

try

. Если код в бло-



ке 

try


 выполнен успешно, то Python пропускает блок 

except


. Если код в блоке 

try


 порождает ошибку, то Python ищет блок 

except


 с соответствующей ошибкой 

и выпускает код в этом блоке.

В этом примере код блока 

try


 порождает ошибку 

ZeroDivisionError

, поэтому 

Python ищет блок 

except

 с описанием того, как следует действовать в такой ситу-



ации. При выполнении кода этого блока пользователь видит понятное сообщение 

об ошибке вместо данных трассировки:

You can't divide by zero!

Если бы за кодом 

try

-

except



 следовал другой код, то выполнение программы 

продолжилось, потому что мы объяснили Python, как обрабатывать эту ошибку. 

В следующем примере обработка ошибки позволяет программе продолжить вы-

полнение.

Использование исключений для предотвращения аварийного 

завершения программы

Правильная обработка ошибок особенно важна в том случае, если программа 

должна продолжить работу после возникновения ошибки. Такая ситуация часто 

встречается в программах, запрашивающих данные у пользователя. Если програм-

ма правильно среагировала на некорректный ввод, она может запросить новые 

данные после сбоя.

Создадим простой калькулятор, который выполняет только операцию деления:




Исключения    197



Достарыңызбен бөлісу:
1   ...   100   101   102   103   104   105   106   107   ...   238




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет