
- •СОДЕРЖАНИЕ
- •ОСНОВЫ ООП В PYTHON
- •КЛАССЫ, АТРИБУТЫ, МЕТОДЫ
- •КОНСТРУКТОР
- •ДЕСТРУКТОР
- •ДАННЫЕ ЭКЗЕМПЛЯРА И КЛАССА
- •НАСЛЕДОВАНИЕ
- •НАСТРОЙКА ЧЕРЕЗ НАСЛЕДОВАНИЕ
- •НАСТРОЙКА ЧЕРЕЗ НАСЛЕДОВАНИЕ
- •БИБЛИОТЕКА NumPy
- •NumPy: СОЗДАНИЕ МАССИВОВ
- •NumPy: МАНИПУЛИРОВАНИЕ МАССИВАМИ
- •NumPy: ОПЕРАЦИИ С ДАННЫМИ
- •NumPy: СЛОЖНЫЕ ВЫЧИСЛЕНИЯ
- •БИБЛИОТЕКА Matplotlib
- •Matplotlib: СОЗДАНИЕ ПРОСТЕЙШИХ ГРАФИКОВ
- •Matplotlib: ВНЕШНИЙ ВИД ГРАФИКОВ
- •Matplotlib: ИСПОЛЬЗОВАНИЕ ВМЕСТЕ С NumPy
- •БИБЛИОТЕКА PyQt
- •РАЗРАБОТКА GUI: C++ vs PyQt
- •PyQt: РАЗМЕЩЕНИЕ ВИДЖЕТОВ
- •PyQt: ОБРАБОТКА СИГНАЛОВ
- •PyQt: ИЕРАРХИЯ КЛАССОВ И ВИДЖЕТОВ
- •PyQt: ВИДЖЕТ ОКНА QMainWindow
- •PyQt: СОЗДАНИЕ МЕНЮ И ДЕЙСТВИЯ
- •PyQt: СТРОКА СОСТОЯНИЯ И ПАНЕЛЬ ИНСТРУМЕНТОВ
- •PyQt: РАЗМЕЩЕНИЕ ВИДЖЕТОВ И ДИАЛОГОВЫЕ ОКНА
- •ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ
- •ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ

НАСТРОЙКА ЧЕРЕЗ НАСЛЕДОВАНИЕ
Настройкафункциональностичерезнаследование – модификацияметодов: class CheckingAccount(BankAccount):
def __init__(self, balance, limit): BankAccount.__init__(self, balance) self.limit = limit
def deposit(self, amount): self.balance += amount
def withdraw(self, amount, fee=0): if fee <= self.limit:
BankAccount.withdraw(self, amount + fee) else:
BankAccount.withdraw(self, amount + self.limit)
>>>check_acct = CheckingAccount(1000, 25)
>>>check_acct.withdraw(200)
>>>check_acct.withdraw(200, fee=15)
>>>bank_acct = BankAccount(1000)
>>>bank_acct.withdraw(200)
>>>bank_acct.withdraw(200, fee=15) TypeError: withdraw() got an unexpected keyword argument ’fee’
10

БИБЛИОТЕКА NumPy
Библиотека NumPy – одинизбазовыхпакетовдлянаучныхвычислений:
Мощные N-размерныемассивы
Интероперабельность
Инструментыдляоперацийсчислами
Быстродействие (оптимизированный C код)
Открытость
Простота использования
Простой примеррешаемыхзадач:
>>>height = [1.7, 1.65, 1.75, 1.82, 1.8]
>>>weight = [65, 58.2, 75, 88.5, 89]
>>>weight / height ** 2
TypeError: unsupported operand type(s) for ** or pow(): ’list’ and ’int’
Применяем NumPy (Numeric Python):
>>>import numpy as np
>>>np_height = np.array(height) => array([1.7, 1.65, 1.75, 1.82, 1.8])
>>>np_weight = np.array(weight) => array([65, 58.2, 75, 88.5, 89])
>>>bmi = np_weight / np_height ** 2
>>>bmi
11 array([22.49134948 21.37741047 24.48979592 26.71778771 27.4691358])

NumPy: СОЗДАНИЕ МАССИВОВ
Подключениебиблиотеки NumPy:
>>>import numpy as np
Инициализациямассива:
>>>a = np.array([1, 2, 3])
Доступкэлементаммассива:
>>>a[0] = -7
Выводмассива:
>>>print(a)
[-7 2 3]
Созданиепустогомассива:
>>>a = np.array([])
>>>print(a)
[]
Созданиемассивасуказаниемэлементов:
>>>a = np.array([1, 2, 3, 4, 5])
>>>a = np.array((1, 2, 3, 4, 5))
Созданиенеинициализированного массива:
>>>a = np.empty(5)
>>>print(a)
12[nan 0. 0. 0. 0.]
Указаниетипаэлементовмассиваприсоздании:
>>>a = np.array([1, 2, 3, 4, 5], dtype=complex)
>>>print(a)
[1.+0.j 2.+0.j 3.+0.j 4.+0.j 5.+0.j]
Созданиемассиваподиапазону:
>>>a = np.arange(0, 10, 1)
>>>a = np.arange(0, 1, 0.1)
>>>print(a)
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
Созданиемассиваподиапазонуичислуразбиений:
>>>a = np.linspace(0, 2, 6)
>>>print(a)
[0. 0.4 0.8 1.2 1.6 2. ]

NumPy: МАНИПУЛИРОВАНИЕ МАССИВАМИ
Добавлениеэлементоввмассив:
>>>a = np.array([])
[]
>>>a = np.append(a, -100) [-100.]
>>>a = np.append(a, [1, 2, 3, 4]) [-100. 1. 2. 3. 4.]
Вставкаэлементоввмассив:
>>>a = np.insert(a, 1, -8) [-100. -8. 1. 2. 3. 4.]
>>>b = np.array([-1, -2, -3])
>>>a = np.insert(a, 3, b)
[-100. -8. 1. -1. -2. -3. 2. 3. 4.]
Удалениеэлементовизмассива:
>>> a = np.delete(a, 1)
[-100. 1. -1. -2. -3. 2. 3. 4.]
>>> a = np.delete(a, [1, 3, 4]) [-100. -1. 2. 3. 4.]
13
Созданиематрицы:
>>>a = np.array([ [0, 1, 2], [3, 4, 5] ])
>>>a = np.array([ (0, 1, 2), (3, 4, 5) ])
>>>a = np.arange(6).reshape(2, 3)
[[0 1 2] [3 4 5]]
Создание изаполнениематрицынулями:
>>> a = np.zeros( (3, 4) ) [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]]
Создание изаполнениематрицыединицами:
>>> a = np.ones( (3, 4) ) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
Созданиематрицысединицамиподиагонали, остальные 0:
>>> a = np.eye(3) [[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]]