Занятие 1. Введение в программирование на Python
История Python. Применение Python. Краткая характеристика языка. Установка интерпретатора. Работа в интерактивном режиме. Арифметика.
История Python. Применение Python. Краткая характеристика языка. Установка интерпретатора. Работа в интерактивном режиме. Арифметика.
Переменные. Структура скрипта. Основные управляющие конструкции: ветвление, цикл. Ввод и вывод. Строки. Концепция типов данных. Сложные типы: списки.
Ещё контейнерные типы: кортеж, множество, словарь. Цикл for. Генераторы списков. Чтение текстового файла.
Работа с текстовыми и двоичными файлами.
Базовые действия операционной системы. Структурирование кода. Создание функций. Стек вызовов. Исключения. Обработка исключений. Выбрасывание исключений. Сложные случаи: вложенные функции, возврат и передача функций.
Общие проблемы при работе со временем. Модуль datetime: типы date
, time
, datetime
, timedelta
, timezone
. Модуль pytz
. Модуль calendar
. Введение в регулярные выражения. Модуль re
.
Ещё раз про ООП. Понятие пользовательского типа данных. Класс. Методы класса. Конструктор. Поля класса. Протоколы.
Основные принципы работы интернета. DNS. Протоколы. World Wide Web. HTTP, HTML, CSS, JavaScript. Построение веб-сайтов. Парсеры, скрэпперы, краулеры. Библиотека requests. Библиотека BeautifulSoup.
Понятие генератора в Python. Ключевое слово yeild
и генераторные выражния. Понятие REST API. Принципы асинхронной многопоточности.
Вытесняющая и кооперативная многозадачность. Сопрограммы. Цикл обработки событий. Ключевые слова async
и await
. Задачи. Асинхронная работа с сетью: aiohttp. Асинхронная обработка файлов: aiofiles.
Веб-сервер. Алгоритм работы веб-сервера. Построение веб-сервера. Фрэймворки и микрофреймворки. Установка Django. Создание проекта. Запуск проекта.
Структура проекта. Конфигурационные файлы. Приложения. Роутинг. Принцип Модель-Представление-Шаблон. Представления и шаблоны. Введение в синтаксис шаблонов Django.
Язык шаблонов страниц Django. Фильтры. Django-теги. Сложные шаблоны. Наследование шаблонов. Основы СУБД.
Модели. Поля моделей. Миграции базы данных. Применение миграций. Создание, сохранение, получение, удаление, модификация данных. Запросы к модели. Связи между моделями. Получение связанных данных.
Формы в HTTP и HTML. Поля и виджеты. Модуль django.forms
. Обработка формы.
Система администрирования django. Настройка системы администрирования. Авторизация и аутентификация. Пакет django.contrib.auth
. Класс User
. Вход в систему, выход из системы. Проверка пользователя. Встроенные представления. Хранение паролей.
Стандартные формы авторизации и восстановления пароля. Регистрация пользователя. Статические файлы. Немного о JavaScript и Ajax.
Общая теория. Библиотеки Pandas, matplotlib, scikit-learn. Загрузка данных. Анализ данных. Построение модели. Различные алгоритмы машинного обучения. Оценка построенной модели.
Тестирование. Подготовка, оформление. Виды тестов. Автоматизация тестирования. Модуль unittest
. Концепция Test-Driven Development (TDD). Оформление отчётов об ошибках.
GUI-приложения. Принципы проектирования GUI. Событийно-ориентированное программирование. Введение в библиотеку tkinter
. Структура программы. Окна, виджеты. Компоновка окна. События, обработка событий. Файловые диалоги и окна сообщений.