- •Стиль программирования на языке Python.
- •Программа на Python. Ввод-вывод данных. Основные алгоритмические конструкции. Последовательные действия.
- •Идентификаторы, комментарии, логические и физические строки.
- •Операторы в Python: арифметические, логические, сравнения присваивания, побитовые
- •Встроенные типы данных. Целые и вещественные типы данных.
- •Типы: комплексные числа, логический
- •Встроенные функции для работы с разными типами данных.
- •Возможности модуля math
- •Оператор условия. Варианты написания оператора.
- •Функции range, enumerate.
- •Операторы break, continue.
- •Строки, работа со строками, срезы, методы и функции для работы со строками
- •Списки. Создание списков, методы и функции для работы со списками. Методы join и split.
- •Кортежи. Создание кортежей, обращение к элементам кортежей.
- •Множества. Создание, добавление элементов. Методы и операции для работы с множествами.
- •Словари. Создание словарей, добавление элементов, обращение к элементам. Методы для работы со словарями.
- •Методы словарей
- •Понятие функционального программирования. Принцип построения функциональных программ.
- •Именованные функции: определение и вызов.
- •Аргументы функций: обязательные, ключевые, со значением по умолчанию, произвольной длины
- •Глобальные и локальные переменные. Нелокальная область видимости.
- •Анонимные функции (lambda-выражение)
- •Понятие модуля. Модули в Python. Подключение модулей. Создание своего модуля и пакета модулей.
- •Использование псевдонимов
- •Обзор стандартной библиотеки. Список всех подключенных модулей. Помощь по модулю
- •Модуль math, Модуль random
- •Модуль datatime, Модуль itertools
- •Модуль itertools
- •Модуль itertools. Бесконечные последовательности
- •Модуль itertools. Генерация комбинаций значений!
- •Создание своего модуля и пакета модулей.
- •Работа с файлами в языке Python. Методы объектов-файлов. Модуль pickle.
- •Оператор try ... Exept
- •Пример оператора try...Except.
- •Основные понятия объектно-ориентированного программирования. Определение класса. Конструкторы и деструкторы.
- •Отношения между классами. Наследование.
- •Метаклассы
- •Модуль Numpy. Типы данных, создание массивов, преобразование, нахождение статистик в массивах, операции для работы с массивами
- •Модуль Matplotlib. Основные функции построения графиков разных видов. Изменения параметров графиков и области построения графиков.
- •Обзор графических библиотек. Библиотека Tkinter.
- •Основные виджеты
- •Менеджеры расположения.
- •Изображения в Tkinter.
Метаклассы
Метаклассы – это классы, экземпляры которых являются классами. Давайте поговорим о специфике языка Python и его функционале.
Чтобы создать свой собственный метакласс в Python, нужно воспользоваться подклассом type, стандартным метаклассом в Python. Чаще всего метаклассы используются в роли виртуального конструктора. Чтобы создать экземпляр класса, нужно сначала вызвать этот самый класс. Точно так же делает и Python: для создания нового класса вызывает метакласс. Метаклассы определяются с помощью базовых классов в атрибуте __metaclass__. При создании класса допускается использование методов __init__ и __new__. С их помощью можно пользоваться дополнительными функциями. Во время выполнения оператора class генерируется пространство имен, которое будет содержать атрибуты будущего класса. Затем, для непосредственного создания, вызывается метакласс с именем и атрибутами.
При написании класса можно добавить атрибут __metaclass__:
class Foo(object):
__metaclass__ = something...
[...]
Если это сделать, то для создания класса Foo Python будет использовать метакласс.
Модуль Numpy. Типы данных, создание массивов, преобразование, нахождение статистик в массивах, операции для работы с массивами
Главный объект NumPy - это однородный многомерный массив. Чаще всего это одномерная последовательность или двумерная таблица, заполненные элементами одного типа, как правило числами, которые проиндексированы кортежем положительных целых чисел. В NumPy, элементы этого кортежа называются осями, а число осей рангом.
Создание массива:
a = np.array([11, 22, 33, 44, 55, 66, 77, 88, 99])
a = np.arange(12)
np.random.randint(0, 15, size = (4, 6))
Типы данных:
В NumPy существует 5 базовых числовых типов: булевы числа (тип bool: 0 - ложь и 1 - истина), целые числа (тип int), беззнаковые целые числа (тип uint), вещественные числа (числа с плавающей запятой, тип float) и комплексные числа (тип complex). У некоторых после указания типа следует количество бит необходимое для хранения такого числа в памяти (16, 32, 64 или 128), но некоторые, такие как int_ или intp зависят от используемой платформы (32 или 64-разрядные машины).
В NumPy доступны следующие типы данных:
bool_
Логический тип (истина или ложь), хранящийся в виде байта.
int_
Целочисленный тип установленный по умолчанию (такой же, как C long, как правило это либо int64 либо int32).
intc
Идентичен C int (int32 или int64).
intp
Целочисленный тип, используемый для индексирования (такой же, как C ssize_t, как правило это либо int64 либо int32).
int8
Целые числа в диапазоне от -128 по 127 (числа размером 1 байт).
int16
Целые числа в диапазоне от -32768 по 32767, (числа размером 2 байта).
int32
Целые числа в диапазоне от -2147483648 по 2147483647, (числа размером 4 байта).
int64
Целые числа в диапазоне от -9223372036854775808 по 9223372036854775807, (числа размером 8 байт).
uint8
Целые числа в диапазоне от 0 по 255 (числа размером 1 байт).
uint16
Целые числа в диапазоне от 0 по 65535 (числа размером 2 байта).
uint32
Целые числа в диапазоне от 0 по 4294967295 (числа размером 4 байта).
uint64
Целые числа в диапазоне от 0 по 18446744073709551615 (числа размером 8 байт).
float_
То же самое что и float64.
float16
Вещественные числа половинной точности: 1 бит знака, 5 бит экспоненты, 10 бит мантисы (числа размером 2 байта).
float32
Вещественные числа одинарной точности: 1 бит знака, 8 бит экспоненты, 23 бита мантисы (числа размером 4 байта).
float64
Вещественные числа двойной точности: 1 бит знака, 11 бит экспоненты, 52 бита мантисы (числа размером 8 байт).
complex_
То же самое что и complex128.
complex64
Комплексные числа в которых действительная и мнимая части представлены двумя вещественными числами типа float32.
complex128
Комплексные числа в которых действительная и мнимая части представлены двумя вещественными числами типа float64.
Нахождение статистик:
Методы:
. Операции между несколькими массивами сначала
проверяются на совпадения размерности.
2. Математические операции применяются поэлементно.
3. Редуцирующие (векторизированные) операторы применяются
ко всему массиву до тех пор, пока ось (axis) не указана.
4. Пропущенные значение (np.nan) распространяются, пока явно
не указано правило игнорирования (nanmean, nansum).
аргмин – место минимума, не значение
n, m = np.unravel_index(np.argmax(arr[:,3:]), arr[:,3:].shape)#переводим такое (.) обрщение в индекс для каждой ячейки