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