Материал: Разработка программных пакетов на языке Python. учебное пособие. Амоа К.А., Рындин Н.А

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Такого поля у экземпляра А нет!

В этом примере создается класс MyClass, не содержащий, собственно, ничего. На основе этого класса создаются два экземпляра с названиями А и B. Затем командам и А.first = "Экземпляр А", В.sесоnd= "Экземпляр В" и MyClass.total= "Kлacc MyClass" добавляются (с присваиванием значений) поля first для экземпляра А, поле second для экземпляра B и поле total для класса MyClass. В команде print (А.total , " " , А.first ) есть ссылки на поле first экземпляра класса и поле total объекта класса, причем обе ссылки выполняются через экземпляр А.

По результату выполнения команды видим, что проблем с доступом к полям не возникает. В принципе, нечто подобное мы наблюдали в предыдущих примерах, но здесь есть одна особенн6ость. Связана она с тем, что поле total появилось у класса MyClass уже после того, как были созданы экземпляры А и в. Но, тем не менее, доступ к добавленному полю total через экземпляры класса имеется. А вот добавление поля одному экземпляру класса для другого экземпляра "остается незамеченным" (что, в принципе, вполне логично).

При попытке выполнить команду print(А.second) возникает ошибка класса AttributeError: поля second у экземпляра А нет. Эту ситуацию мы обрабатываем с помощью блока try-except. Результатом является сообщение Такого поля у экземпляра А нет!, которое отображается командой print ("Такого поля у экземпляра А нет !") в ехсерt-блоке.

Аналогично обстоят дела с экземпляром B: доступ к полю total класса MyClass и полю second экземпляра через переменную В получаем без проблем, а к полю first экземпляра доступа нет, поскольку это поле добавлялось в экземпляр А, и экземпляр B к данному полю никакого отношения не имеет.

На следующем этапе командой del(MyClass.total) удаляем поле total объекта класса MyClass, после чего командой print(А.total) (в trу-блоке) пытаемся прочитать значение этого поля. Судя по тому, что в этом случае возникает ошибка класса At tributeError (неверный атрибут) и в ехсерt-блоке выполняется команда print ("Такого поля нет!"), поле total действительно удалено из объекта класса MyClass. Нет доступа к удаленному полю total и через переменную B.

Наконец, командой del(A.first) поле first экземпляра А. Как следствие, при попытке выполнить команду print (A . fir s t ) в t rу-блоке возникает ошибка. Поэтому в ехсерt-блоке выполняется команда print ("Такого поля у экземпляра А нет!").

5.4.Практические задания

1.Класс Дробное число со знаком (Fractions). Число должно быть представлено двумя полями: целая часть – длинное целое со знаком, дробная часть –беззнаковое короткое целое. Реализовать арифметические операции

55

сложения, вычитания, умножения и операции сравнения. В функции main проверить эти методы.

2.Класс Деньги для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для рублей и типа unsigned char – для копеек. Дробная часть (копейки) при выводе на экран должна быть отделена от целой части запятой. Реализовать сложение, вычитание, деление сумм, деление суммы на дробное число, умножение на дробное число и операции сравнения.

Вфункции main проверить эти методы.

3.Класс Равнобочная трапеция, члены класса: координаты 4-х точек. Предусмотреть в классе конструктор и методы: проверка, является ли фигура равнобочной трапецией; вычисления и вывода сведений о фигуре: длины сторон, периметр, площадь. В функции main продемонстрировать работу с классом: дано N трапеций, найти количество трапеций, у которых площадь больше средней площади.

Вопросы для самопроверки

1.Что такое класс в Python?

2.Что такое Объекты в Python?

3.Что такое Инкапсуляция в Python?

4.Что такое Интерфейсы в Python?

5.Что такое Полиморфизм в Python?

ЗАКЛЮЧЕНИЕ

В учебном пособии описан базовый синтаксис языка Python: типы данных, операторы, условия, циклы, регулярные выражения, встроенные функции, объектно-ориентированное программирование, обработка исключений, часто используемые модули стандартной библиотеки и установка дополнительных модулей с помощью утилиты pip. Даны основы SQLite, описан интерфейс доступа к базам данных SQLite и MySQL, рассказано об использовании ODBC для доступа к данным. Рассмотрена работа с изображениями с помощью библиотек Pillow и Wand, получение данных из Интернета, разработка оконных приложений с помощью библиотеки Tkinter, параллельное программирование и работа с архивными файлами различных форматов. Пособие содержит множество практических примеров, помогающих начать программировать на языке Python самостоятельно. Весь материал тщательно подобран, хорошо структурирован и компактно изложен, что позволяет использовать пособие как удобный справочник.

Предоставленный материал, как считают авторы, вполне способен, опираясь на знания, полученные в рамках бакалавриата и систематизируя их, дать минимально необходимый запас для начала работы в такой интересной сфере деятельности, как разработка приложений на языке Python.

56

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1.Коэльё, Л.П., Ричерт, В. Построение систем машинного обучения на языке Python / Л.П. Коэльё, В. Ричерт; пер. с англ. – М.: ДМК Пресс, 2015.

2.Маккинли, У. Python и анализ данных / У. Маккинли; пер. с англ. – М.: ДМК Пресс, 2015. – 482 с.

3.Саммерфилд, М. Python на практике / М. Саммерфилд; пер. с англ. – М.: ДМК Пресс, 2014. – 338 с.

4.Лутц, М. Программирование на Python / М. Лутц; пер. с англ. – 4-е изд.

–Т. II. – СПб.: Символ-Плюс, 2011.

5.Лутц, М. Программирование на Python / М. Лутц; пер. с англ. – 4-е изд. – Т. I. – СПб.: Символ-Плюс, 2011. – 992 с.

6.Лутц, М. Изучаем Python / М. Лутц; пер. с англ. – 4-е изд. – СПб.: Символ-Плюс, 2010. – 1280 с.

7.Бизли, Дэвид М. Python. Подробный справочник / Дэвид М. Бизли; пер. с англ. – 4-е изд. – СПб.: Символ-Плюс, 2010. – 864 с.

8.Саммерфилд, М. Программирование на Python 3. Подробное руководство / М. Саммерфилд; пер. с англ. – СПб.: Символ-Плюс, 2009. – 608 с.

9.Гифт, Ноа, Джонс, Джереми М. Python в системном администрировании UNIX и Linux / Ноа Гифт, Джереми М. Джонс; пер. с англ. – СПб.: Символ-Плюс, 2009. – 512 с.

10.Бизли, Дэвид М. Язык программирования Python. Справочник / Дэвид М. Бизли. – К.: ДиаСофт, 2000. – 336 с.

11.Сузи, Р.А. Python. Наиболее полное руководство (+CD) / Р. А. Сузи. –

СПб.: БХВ-Петербург, 2002. – 768 с.

12. Сузи, Р.А. Язык программирования Python: учебное пособие / Р. А. Сузи. – М.: ИНТУИТ, БИНОМ. Лаборатория знаний, 2006. – 328 с.

13.Доусон, М. Программируем на Python / М. Доусон. – СПб.: Питер, 2012. – 432 с.

14.Шапошникова, С. Основы программирования на Python. Учебник. Вводный курс / С. Шапошникова. – версия 2. – 2011. – 44 с.

15.Хахаев, И.А. Практикум по алгоритмизации и программированию на Python: учебник / И.А. Хахаев. – М.: Альт Линукс, 2010. – 126 с.

16.Фёдоров, Д.Ю. Основы программирования на примере языка Python: учебное пособие / Д.Ю. Фёдоров. – СПб.: Юрайт, 2018. – 167 с.

17.Чаплыгин, А.Н. Учимся программировать вместе с Питоном: учебник

/А.Н. Чаплыгин. – 135 с.

18.Бизли, Д., Ван Россум, Гвидо. Python: основные ссылки / Д. Бизли,

Гвидо Ван Россум. – New Riders Publishing, 1999.

19.Мартин С. Браун. Python: полный справочник / С. Мартин. – McGrawHill Professional Publishing, 2001.

20.Дж. Чун, Уэсли. Базовое программирование на Python / Уэсли Дж. Чун. – Прентис Холл ПТР, 2000.

57

21.Голд, А. Научитесь программировать с помощью Python: учебное пособие для любителей, начинающих и тех, кто хочет научиться искусству программирования / А. Голд. – Аддисон-Уэсли Профессионал, 2001.

22.Грейсон, Д. Э. Программирование на Python и Tkinter / Д.Э. Грейсон.

–Компания Manning Publications, 1999.

23.Гупта, Р. Использование Python / Р. Гупта. – Wiley, 2002

24.Хаммонд, М., Робинсон, Э. Программирование на Python на Win32 / М. Хаммонд, Э. Робинсон. – О'Рейли, 2000.

25.Джонс, К.А., Дрейк, Ф.Л. Python & XML / К.А. Джонс, Ф.Л. Дрейк. –

O’Reilly & Associates, 2001.

26.Ланингем, И.В.. Учите себя Python за 24 часа / И.В. Ланингем. – Самс,

2000.

27.Латтайер, А., Пеллетье, М. Книга Zope / А. Латтайер, М. Пеллетье.

Издательство New Riders, 2001.

28.Лунд, Ф. Стандартная библиотека Python / Ф. Лунд. – O’Reilly & Associates, 2001.

29.Суигарт, А. Придумай свои собственные компьютерные игры с Python / А. Суигарт. – 2008-2010. – 436 с.

30.Суигарт, А. Базовое программирование приложений Python / А.

Суигарт. - 2012. - 888 с.

58

ОГЛАВЛЕНИЕ

 

ВВЕДЕНИЕ................................................................................................................

3

1. ЗНАКОМСТВО С ЯЗЫКОМ PYTHON ..............................................................

3

1.1. Почему Python .................................................................................................

3

1.2. Практические задания.....................................................................................

7

Вопросы для самопроверки...................................................................................

7

2. ТИПЫ ДАННЫХ...................................................................................................

7

2.1. Базовые типы данных в языке Python ...........................................................

7

2.1.1.

8Ошиб

Decimal............................................................................................................

ка! Закладка не определена.

 

2.1.2. Fraction............................................................................................................

8

2.1.3. Кортежи.........................................................................................................

9

2.1.4. Словари .......................................................................................................

10

2.1.5. Множества ..................................................................................................

12

2.1.6. Frozenset ......................................................................................................

14

2.1.7. Файлы..........................................................................................................

15

2.1.8. Генераторы..................................................................................................

17

2.2. Практические задания...................................................................................

17

Вопросы для самопроверки.................................................................................

18

3. ФУНКЦИИ...........................................................................................................

18

3.1. Создание функции.........................................................................................

18

3.2. Значения аргументов по умолчанию...........................................................

20

3.3. Рекурсия.........................................................................................................

23

3.4. Лямбда-функции............................................................................................

26

3.5. Локальные и глобальные переменные........................................................

29

3.6. Практические задания...................................................................................

31

Вопросы для самопроверки.................................................................................

31

4. ДЕКОРАТОРЫ, ИСКЛЮЧЕНИЯ, ИТЕРАТОРЫ ...........................................

32

4.1. Декораторы....................................................................................................

32

4.2. Итераторы и генераторы ..............................................................................

38

59

Источник: https://studfile.net/preview/16565614/