- •Стиль программирования на языке 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 это неупорядоченная изменяемая коллекция элементов (ключ: значение), доступ к которым осуществляется по ключу. То есть каждому ключу словаря соответствует определенное значение. Словарь - это тип данных dict. Ключ должен быть уникальным. Ключом может быть любой неизменяемый тип данных (число, строка, кортеж), значением - любой тип данных. Данный словарь использует строки в качестве ключей. Значением тоже являются строки.
d = {'персона': 'человек',
'марафон': 'гонка бегунов длиной около 26 миль',
'противостоять': 'оставаться сильным, несмотря на давление',
'бежать': 'двигаться со скоростью'}
country = {} # Создание пустого словаря
d = dict()
Обращаться к элементу словаря по номеру нельзя
Можно обращаться по ключу: вывести значение элемента по ключу, удалить элемент по ключу
country = {'Italy':'Rome', 'USA': 'Washington', 'Russia': 'Moscow'}
print('Cловарь:', country)
print('Столица России:', country['Russia'])
del country['Russia']
print('Cловарь после удаления:',country)
Cловарь: {'Italy': 'Rome', 'USA': 'Washington', 'Russia': 'Moscow'}
Столица России: Moscow
Cловарь после удаления: {'Italy': 'Rome', 'USA': 'Washington'}
Если элемента с заданным ключом нет в словаре, и при попытке вывода и при попытке удаления возникает ошибка
Методы словарей
dict.clear() - очищает словарь. dict.copy() - возвращает копию словаря.
dict.fromkeys(seq[, value]) - создает словарь с ключами из seq и значением value (при отсутствии параметра value значения задаутся None - пусто).
dict.get(key[, default]) - возвращает значение по ключю key. Если ключа key нет в словаре, то возвращает значение default (если параметр default не указан, то возвращает значение None - пусто).
dict.items() - возвращает список из пар (ключ, значение).dict.keys() - возвращает список из ключей словаря.
dict.pop(key[, default]) - удаляет ключ key и возвращает значение. Если ключа нет, возвращает default (при отсутствии default бросает исключение).
dict.popitem() - удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены.
dict.setdefault(key[, default]) - возвращает значение ключа key, но если его нет, не бросает исключение, а создает ключ с значением default (по умолчанию None).
dict.update([other]) - обновляет словарь, добавляя пары (ключ, значение) из словаря other. Существующие ключи перезаписываются. Возвращает None (не новый словарь!). dict.values() - возвращает список значений из словаря.
Понятие функционального программирования. Принцип построения функциональных программ.
По сути, функциональное программирование – это стиль программирования, в котором программы пишутся с использованием математических функций, которые принимают неизменные значения в качестве входных данных и создают выходные выражения. Функциональный стиль программирования направлен на то, чтобы избежать побочных эффектов, то есть взаимодействия с внешним миром посредством, скажем, изменения любого состояния или зависимости от него. Эта независимость позволяет очень легко формально проверить «правильность» программы.
огда говорят о ФП, прежде всего имеют в виду следующее:
Функции – это «граждане более высокого сорта», т.е., все, что можно делать с «данными», можно делать и с функциями (в том числе передача функции другой функции в качестве аргумента).
Использование рекурсии в качестве основной структуры контроля потока управления. В некоторых языках не существует иной конструкции цикла, кроме рекурсии.
Акцент на обработке последовательностей. Списки с рекурсивным обходом подсписков часто используются в качестве замены циклов.
«Чистые» функциональные языки избегают побочных эффектов. Это исключает присваивания, почти повсеместно распространенный в императивных языках подход, при котором за одной и той же переменной последовательно закрепляются разные значения для отслеживания состояния программы.
ФП не одобряет или совершенно запрещает инструкции, используя вместо этого вычисление выражений (т.е. функций с аргументами). В предельном случае, одна программа есть одно выражение (плюс дополнительные определения).
ФП акцентируется на том, что должно быть вычислено, а не как.
Функциональное программирование представляет собой методику написания программного обеспечения, в центре внимания которой находятся функции. В парадигме ФП объектами первого класса являются функции. Они обрабатываются таким же образом, что и любой другой примитивный тип данных, такой как строковый и числовой. Функции могут получать другие функции в виде аргументов и на выходе возвращать новые функции. Функции, имеющие такие признаки, называются функциями более высокого порядка из-за их высокой выразительной мощи. И вам непременно следует воспользоваться их чудесной выразительностью.
Программистам чаще приходится работать с последовательностями значений, такими как списки и кортежи, или же контейнерами, такими как словари и множества. Как правило, в файлах хранятся большие объемы текстовых или числовых данных, которые затем загружаются в программу в соответствующие структуры данных и обрабатываются. Python имеет богатый и мощный арсенал инструментов, которые облегчают их обработку в функциональном стиле.
Что делает функции нечистыми?
Глобальные мутации, т.е. внесение изменений в глобальное состояние,
Недетерминированность функций, т.е. которые для одинаковых входных значений могут возвращать разные результаты, и
Операции ввода-вывода.