Алексей Николаевич Васильев - Python на примерах. Практический курс по программированию
3-е изданиеНазвание: | Python на примерах. Практический курс по программированию | |
Автор: | Алексей Николаевич Васильев | |
Жанр: | Программирование: прочее, Python | |
Изадано в серии: | На примерах | |
Издательство: | Наука и Техника | |
Год издания: | 2019 | |
ISBN: | 978-5-94387-781-0 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Python на примерах. Практический курс по программированию"
В этой книге речь будет идти о том, как писать программы на языке программирования, который называется Python (правильно читается как Пайтон, но обычно название языка читают как питон, что тоже вполне приемлемо). Таким образом, решать будем две задачи, одна из которых приоритетная, а вторая, хотя и вспомогательная, но достаточно важная. Наша основная задача, конечно же, изучение синтаксиса языка программирования Python. Параллельно мы будем осваивать программирование как таковое, явно или неявно принимая во внимание, что соответствующие алгоритмы предполагается реализовывать на языке Python. Большинство авторов книг в своих трудах рассматривают теоретические основы языка и уделяют основное внимание базовому синтаксису языка, не рассматривая при этом практическую сторону его применения. Эта же книга старается восполнить недостаток практического материала, содержит множество примеров с комментариями, которые вы сможете использовать в качестве основы своих программных решений, изучения Python. Материал книги излагается последовательно и сопровождается большим количеством наглядных примеров, разноплановых практических задач и детальным разбором их решений
Читаем онлайн "Python на примерах. Практический курс по программированию". [Страница - 76]
необходимо создать новый класс путем наследования класса из иерархии
классов встроенных исключений. Обычно в качестве базового класса реко
мендуют использовать класс Exception.
Процесс создания классов пользовательских исключений рассмотрим на
примере, представленном в листинге 8.13. В этом примере мы решаем ква-
g'fi'i
*
Глава 8. Немного о разном
дратные уравнения. Поиск решения в числовом виде подразумевает генери
рование исключений пользовательских типов.
Ш
На заметку
Напомним, что квадратное уравнение имеет вид ах2 + Ьх + С = О- В зависимо
сти от значений параметров а , Ь и С возможны следующие варианты. Формально у
-Ъ + Vb2 - 4ас
-Ь - Vb2 - 4ас
квадратного уравнения два решения: * i = --------- ^ --------- и ** ~
2а
>но
это в том случае, если параметр а Ф 0 и выражение D = Ь2 — 4 а с (называет
ся дискриминантом квадратного уравнения) неотрицательно, то есть если D > О
. Причем если дискриминант нулевой (то есть D — О), то оба корня уравнения со
впадают: х х = х г = — — , Если дискриминант отрицательный (имеет место
D < О), то на множестве действительных чисел квадратное уравнение решений не
имеет. Зато имеет два решения на множестве комплексных чисел:
-Ь -
.
-ъ + iV^lj
2а
= ----------------
и
--------- 2а------ ■гДе через I обозначена мнимая единица (такая, что по опреде
лению i 2 = —1). Все это имеет место, если параметр а не равен нулю. Если же
а = О, то фактически речь идет не о квадратном, а о линейном уравнении вида
с
Ь х + с = О. У этого уравнения одно решение х = но это при условии, что
Ь =£ О. Если 6 = О, то все зависит от того, равен ли нулю параметр С. При с = О
решением уравнения Ьх + с = О будет любое число. При с Ф О У уравнения
Ьх + с = О решений нет.
Понятно, что при написании программного кода для решения квадратных уравне
ний с учетом всех перечисленных выше факторов можно использовать структуру
из вложенных условных операторов. Но мы пойдем другим путем. В приведенном
программном коде описывается два класса пользовательских исключений. Одно
исключение генерируется в случае, если уравнение не является квадратным, а
другое - если у уравнения комплексные решения (корни).
Листинг 8 .1 3 . Пользовательские классы исключений
# Импорт м а т е м а т и ч е с к о й функции
fro m m ath im p o r t s q r t
# К л а с с п о л ь з о в а т е л ь с к о й ош ибки
c l a s s L in e arE q u a tio n W arn in g (W a rn in g ):
# К онструктор
d e f __ i n i t __ ( s e l f , b , c ) :
# Контролируемый код
try :
# П р и с в а и в а н и е з н а ч е н и я полю э к з е м п л я р а .
# Возможна ошибка д е л е н и я н а н оль
s e l f . х = -с /Ь
# Е сли в о з н и к л а ошибка д е л е н и я н а ноль
except Z e ro D iv isio n E rro r:
# Если п ар ам етр нул евой
- ш т
Python
if
c==0:
# Реш ение - лю бое ч и с л о
s e l f . х="лю бое ч и с л о "
# Е с л и п а р а м е т р н е р а в е н нулю
e lse :
# Р еш ен и й н е т
s e l f . х="реш ений н е т "
# М етод д л я п р и в е д е н и я э к з е м п л я р а и ск л ю ч е н и я
# к те к с то в о м у формату
d e f __ s t r __ ( s e l f ) :
# Ф ормируется т е к с т о в о е зн а ч е н и е
# для р е з у л ь т а т а м етода
t x t = " Реш ение у р а в н е н и я : "
t x t + = s t r ( s e l f .х )
# Р езу л ь тат м етода
re tu rn tx t
# К ласс п о л ь з о в а т е л ь с к о г о исклю чения
c la s s C o m p lex R o o tsE rro r(E x c ep tio n ):
# К онструктор
d e f __ i n i t __ ( s e l f , a , b , D ) :
# Значение поля экзем пляра
se lf.x l= c o m p le x ( - b /2 /a ,s q rt(-D )/2 /a )
# Значение поля экзем пляра
s e l f . x 2 = co m p lex ( - b / 2 / a , - s q r t ( - D ) / 2 / a )
# М е то д д л я п р и в е д е н и я э к з е м п л я р а и с к л ю ч е н и я
# к т е к с т о в о м у формату
d e f __ s t r __ ( s e l f ) :
# Ф ормирование т е к с т о в о й с т р о к и для
# р е зу л ь та та метода
tx t= " x l = " + s tr(s e lf.x l)+ " \n "
t x t + = " x 2 = " + s t r ( s e l f . x2)
# Р езу л ьтат м етода
re tu rn tx t
# Функция д л я о т о б р а ж е н и я п а р а м е т р о в у р а в н е н и я
d e f s h o w _ p a ra m s(a ,b ,с ) :
# Т екст с форматированием
p r i n t ( "П арам етры : а = {0}, b = {1}, с = { 2 } : " . f o r m a t ( а , Ь , с ) )
# Функция д л я реш ен и я к в а д р а т н о г о у р а в н е н и я
d e f f i n d _ r o o t s (а , b , с) :
# О тображение п ар ам етр о в реш аем ого ур ав н ен и я
s h o w _ p a r a m s ( а , b , с)
# Контролируемый код
try :
# Если п а р а м е т р н у л ев о й
i f а==0:
# Г е н ер и р у е тся исклю чение
ш т -
Глава 8. Немного о разном
# п о л ь з о в а т е л ь с к о г о типа
r a i s e L i n e a r E q u a t i o n W a r n i n g ( b , с)
# Дискриминант ур ав н ен и я
D = b*b-4*a*c
# Е сл и д и с к р и м и н а н т меньш е н у л я
i f D --">
Книги схожие с «Python на примерах. Практический курс по программированию» по жанру, серии, автору или названию:
Алексей Николаевич Васильев - Python на примерах. Практический курс по программированию Жанр: Программирование: прочее Год издания: 2016 Серия: Просто о сложном |
Ильяс Низамутдинов - Простой пошаговый курс обучения программированию в 1С для всех Жанр: Программирование: прочее Год издания: 2018 |
А. П. Никольский - JavaScript на примерах Практика, практика и только практика Жанр: Java, Java Script Год издания: 2018 Серия: На примерах |
Другие книги из серии «На примерах»:
Павел Алексеевич Орленко, Петр Валентинович Евдокимов - С++ на примерах Практика, практика и только практика Жанр: C, C++, C# Год издания: 2019 Серия: На примерах |
А. П. Никольский - JavaScript на примерах Практика, практика и только практика Жанр: Java, Java Script Год издания: 2018 Серия: На примерах |
Алексей Николаевич Васильев - Python на примерах. Практический курс по программированию Жанр: Python Год издания: 2019 Серия: На примерах |
Петр Валентинович Евдокимов - C# на примерах Жанр: Современные российские издания Год издания: 2019 Серия: На примерах |