Алексей Николаевич Васильев - Python на примерах. Практический курс по программированию
3-е изданиеНазвание: | Python на примерах. Практический курс по программированию | |
Автор: | Алексей Николаевич Васильев | |
Жанр: | Программирование: прочее, Python | |
Изадано в серии: | На примерах | |
Издательство: | Наука и Техника | |
Год издания: | 2019 | |
ISBN: | 978-5-94387-781-0 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Python на примерах. Практический курс по программированию"
В этой книге речь будет идти о том, как писать программы на языке программирования, который называется Python (правильно читается как Пайтон, но обычно название языка читают как питон, что тоже вполне приемлемо). Таким образом, решать будем две задачи, одна из которых приоритетная, а вторая, хотя и вспомогательная, но достаточно важная. Наша основная задача, конечно же, изучение синтаксиса языка программирования Python. Параллельно мы будем осваивать программирование как таковое, явно или неявно принимая во внимание, что соответствующие алгоритмы предполагается реализовывать на языке Python. Большинство авторов книг в своих трудах рассматривают теоретические основы языка и уделяют основное внимание базовому синтаксису языка, не рассматривая при этом практическую сторону его применения. Эта же книга старается восполнить недостаток практического материала, содержит множество примеров с комментариями, которые вы сможете использовать в качестве основы своих программных решений, изучения Python. Материал книги излагается последовательно и сопровождается большим количеством наглядных примеров, разноплановых практических задач и детальным разбором их решений
Читаем онлайн "Python на примерах. Практический курс по программированию". [Страница - 74]
если дело дошло до выполнения команды names [п + 1 ] , то значение п рав
но 0 или 2 (при значении 1 ошибка возникает на предыдущем шаге). При
значении 0 индекс п +1 дает значение 1 . Элемент с таким индексом в спи
ске names имеется. Но беда в том, что значение этого элемента мы пытаем
ся поделить на ноль. Такой самонадеянный проступок приводит к ошибке
класса ZeroDivisionError.
Если значение переменной п равно 2 , то деления на ноль нет, но индекс п +1
равен 3, и элемента с таким индексом в списке names нет. В результате воз
никает ошибка класса IndexError. Для перехвата и той, и другой ошибки
предназначен except-блок с кортежем из классов исключений LookupError и ArithmeticError. Экземпляр класса ошибки обозначен как err.
Q
На заметку
Класс исключения ZeroDivisionError является производным классом от клас
са ArithmeticError. Класс исключения IndexError является подклассом клас
са LookupError. Поэтому в except-блоке с кортежем из классов исключений
LookupError и ArithmeticError перехватываются исключения классов
ZeroDivisionError и IndexError.
В блоке при обработке ошибки выполняется обращение к полю __ с l a s s __
экземпляра ошибки e r r . Значением этого поля является название класса, к
которому относится экземпляр e r r .
*
Глава 8. Немного о разном
Q
На заметку
В программном коде есть команда p r i n t (" - " * 4 5 ). В данном случае отображает
ся строка, которая получается повторением символа
45 раз.
Как отмечалось ранее, исключения можно не только перехватывать и обра
батывать, но и генерировать. Зачем генерировать исключения - вопрос от
дельный. Например, метод генерирования исключений можно рассматри
вать как некий способ имитации условного оператора или выполнение ана
лога безусловного перехода в программном коде. Но как бы там ни было, ге
нерирование исключений как механизм программирования существует, и
мы с ним кратко познакомимся.
С технической точки зрения для генерирования исключения (ошибки) до
статочно после инструкции r a i s e указать экземпляр класса исключения.
Экземпляр класса исключения можно или создать, или воспользоваться
"готовым" - например тем, что создается автоматически, когда ошибка ре
ально возникает, и затем передается в блок обработки исключения. Пример
в листинге 8.11 иллюстрирует обе эти ситуации.
Листинг 8 .1 1 . Генерирование исключения
# С оздаем э к зе м п л я р исклю чения
e r r _ o n e = Z e r o D i v i s i o n E r r o r ( "О ш ибка д е л е н и я н а н о л ь ! " )
p r i n t ( "С ей час \" в о з н и к н е т \ " о ш и б к а.")
p r i n t ( " П е р в а я :" )
# Описание э к з е м п л я р а исклю чения
p rin t(e rr_ o n e )
# Контролируемый код
try :
# Г е н е р и р о в а н и е ош ибки
r a is e err_one
# О б р а б о т к а ош ибк и
e x c e p t Z e ro D iv isio n E rro r as err_ tw o :
p r i n t ( " В т о р а я :" )
# О п и с а н и е ош ибк и
p rin t(e rr_ tw o )
# Контролируемый код
try :
# П о в т о р н о е г е н е р и р о в а н и е ош ибки
r a i s e e rr_ tw o
# О б р а б о т к а ош ибки
ex c ep t Z e ro D iv isio n E rro r as e r r _ th r e e :
p r i n t ( " Т р е т ь я :")
# О п и с а н и е ош ибки
p rin t(e rr_ th re e )
•Ш Ш
Python
# Контролируемый код
try :
# Попытка д е л е н и я н а н ол ь
а=1/0
# О б р а б о т к а ош ибки
ex c e p t Z e ro D iv isio n E rro r as
p r i n t ( " Ч е т в е р т а я :" )
# О п и с а н и е ош ибки
p rin t(e rr_ fo u r)
p r i n t ( "Больш е н и к а к и х о ш и б о к ." )
err_ fo u r:
При выполнении программного кода получаем такой результат:
Результат выполнения программы (из листинга 8 .1 1 )
С ейчас "в о з н и к н е т " ош ибка.
П ервая:
Ошибка д е л е н и я н а н о л ь !
В торая:
Ошибка д е л е н и я н а н о л ь !
Третья:
Ошибка д е л е н и я н а н о л ь !
Ч етвертая:
d i v i s i o n by ze ro
Больше н и к а к и х ош ибок.
В этом программном коде командой err_one=ZeroDivisionError
("Ошибка деления на ноль!") мы создаем экземпляр егг_опе ис
ключения класса ZeroDivisionError. Текст, который передается аргу
ментом конструктору при создании экземпляра, служит описанием ошиб
ки. Именно этот текст будет результатом приведения экземпляра исключе
ния к текстовому формату: например, если передать экземпляр егг_опе в
качестве аргумента методу print ( ), в результате в окне вывода появится
текст "Ошибка деления на ноль !".
Затем в t r y -блоке выполняется команда r a i s e err_one, в результате
чего генерируется ошибка, реализованная через экземпляр егг_опе клас
са ZeroDivisionError.
Щ
На зам етку
Обратите внимание, что создание экземпляра исключения не
означает возникновения ошибки. Для --">
Книги схожие с «Python на примерах. Практический курс по программированию» по жанру, серии, автору или названию:
Алексей Николаевич Васильев - Python на примерах. Практический курс по программированию Жанр: Современные российские издания Год издания: 2016 Серия: Просто о сложном |
Коллектив Авторов - Практическое руководство по программированию Жанр: Программирование: прочее Год издания: 1986 |
Другие книги из серии «На примерах»:
Павел Алексеевич Орленко, Петр Валентинович Евдокимов - С++ на примерах Практика, практика и только практика Жанр: Современные российские издания Год издания: 2019 Серия: На примерах |
А. П. Никольский - JavaScript на примерах Практика, практика и только практика Жанр: Современные российские издания Год издания: 2018 Серия: На примерах |
Алексей Николаевич Васильев - Python на примерах. Практический курс по программированию Жанр: Программирование: прочее Год издания: 2019 Серия: На примерах |
Петр Валентинович Евдокимов - C# на примерах Жанр: Современные российские издания Год издания: 2019 Серия: На примерах |