Тетради Jupyter (IPython notebooks).- Введение в IPython notebook.
- Лабораторная работа 1: Создание первой тетради Jupyter.
- Лабораторная работа 2: Экспериментируем с IPython notebook.
- Упрощенный язык разметки markdown.
- «Магические» команды (magic commands).
• Automagic
• Autosave
• Команды работы с директориями.
• Обращение к трём последним строкам ввода и вывода.
• История команд.
• Работа с закладками.
• Переменные окружения.
• Загрузка и запуск программного кода из файлов.
• Выполнение команд оболочки и операционной системы.
• Дополнительные «магические» команды.
- Получение сведений из справочной системы.
Продвинутые возможности Python для работы с коллекциями.- Продвинутые списковые включения (list comprehensions).
• Краткое повторение основ списковых включений.
• Списковые включения со многими циклами.
•
Лабораторная работа 3: «Подбрасывание пяти игральных кубиков».• Именованные кортежи (named tuple).
• Словари с указанием значения по умолчанию (defaultdict).
•
Лабораторная работа 4: Создание словаря defaultdict.• Счётчики. Класс collections.Counter.
•
Лабораторная работа 5: Использование объекта класса Counter.- Отображение и фильтрация.
• Map (функция, итерируемая последовательность).
• Filter (логическая-функция, итерируемая последовательность).
• Использование lambda-функций с map() и filter().
- Изменяемые (mutable) и неизменяемые (immutable) объекты встроенных типов.
• Строки (str).
• Списки (list).
• Сортировка элементов списка «на месте» без образования копии. Метод sort().
• Функция sorted().
•
Лабораторная работа 6: Переход от использования метода list.sort() к функции sorted (итерируемая последовательность) • Сортировка последовательности, состоящей из последовательностей.
• Сортировка последовательности, состоящей из словарей.
• Распаковка последовательностей для передачи в качестве набора аргументов в вызове функции.
•
Лабораторная работа 7: Преобразование строки в объект datetime.date.• Модули.
• Пакеты.
• Путь поиска модулей и пакетов
Регулярные выражения (regular expressions).- Синтаксис регулярных выражений.
- Использование регулярных выражений.
- Ссылки на группы (backreference).
- Средства Python для поддержки регулярных выражений.
Работа с данными: базы данных, файлы CSV, JSON, XML.- Реляционные базы данных.
- Документ PEP 0249: Интерфейс программиста (API) Python для работы с базами данных (версия 2.0).
- Модуль PyMySQL.
- Возвращение словарей (dictionary) вместо кортежей (tuple).
- sqlite3
- Лабораторная работа 8: Выполнение оператора SELECT в базе данных sqllite3.
- Передача параметров.
- Размещение базы данных SQLite в памяти.
- Выполнение нескольких запросов сразу.
- Лабораторная работа 9: Вставка данных (insert) в таблицу базы данных.
- Текстовые файлы с разделителями (CSV-comma separated values).
• Чтение из csv-файла.
• Поиск данных в csv-файле.
•
Лабораторная работа 10: Сравнение данных в csv-файле.• Создание нового файла csv.
• Варианты формата CSV.
- Получение данных с веб-сайтов.
• Пакет requests.
• Пакет beautiful soup.
• XML.
•
Лабораторная работа 11: Применение модулей requests и Beautiful Soup.
• JSON.
Классы и объекты.
- Атрибуты.
- Поведение объектов.
- Понимание отличия классов от объектов. Создание своих собственных классов.
- Атрибуты и методы.
- Лабораторная работа 12: Добавление метода roll() к классу Die.
- Приватные атрибуты.
- Свойства (properties).
- Лабораторная работа 13: Свойства. Объект, который отслеживает свою историю.
- Снабжение классов документацией.
• Использование строк документации.
•
Лабораторная работа 14:
Снабжение класса Die строкой документации.• Перекрытие метода (overriding a method).
• Расширение класса (extending a class).
•
Лабораторная работа 15: Расширение класса Die. • Расширение метода.
•
Лабораторная работа 16: Расширение метода roll().
• Статические (static) методы.
• Атрибуты класса и методы класса. Подклассы.
• Абстрактные классы и методы.
• Понимание декораторов (decorators).
Тестирование и отладка.- Тестирование производительности (performance).
• time.perf_counter
• Модуль timeit.
• Файлы с тестами unittest.
•
Лабораторная работа 17: Исправление неправильно работающей функции.• Специальные возможности unittest. Методы testCase.
• Методы assert.
Кодировки и Unicode.- Биты и байты.
- Шестнадцатеричные числа.
- Лабораторная работа 18: Использование функций преобразования hex(), bin(), ord(), chr(), int().
- Кодировки.
• Кодировки текста.
• Кодирование и декодирование файлов в языке Python.
• Преобразование из кодировки Windows в кодировку Unicode (UTF-8).
•
Лабораторная работа 19: Нахождение проблем с кодировкой.