Занятие 1. Введение
История и область применения Python. Версии Python. Установка интерпретатора. Работа в интерактивном режиме (REPL). Арифметика. Имена, присваивание.
История и область применения Python. Версии Python. Установка интерпретатора. Работа в интерактивном режиме (REPL). Арифметика. Имена, присваивание.
Типы данных. Строки. Операции над строками. Срезы. Литералы. Преобразование типов. Объекты, атрибуты и методы. Логический тип bool
. Управление ходом выполнения программы. Оператор ветвления. Операторы цикла. Бонус: ввод и вывод информации.
Контейнерные типы. Списки. Цикл for. Изменяемые и неизменяемые типы. Как на самом деле обстоят дела с переменными. Кортежи. Концепция iterable.
Словари. Множества. Утиная типизация. Файловая система. Абсолютные и относительные пути. Рабочий каталог программы. Работа с файлами в Python. Открытие файла. Чтение текстового файла. Запись в текстовый файл.
Структурирование программы. Функции в Python. Создание функции. Параметры функции. Формальные и фактические параметры. Вызов функции. Локальное пространство имён. Лямбда-выражения.
Литералы. Лямбда-выражения. Обработка ошибок в программе. Практикум.
Инструкция import. Разбиение программы на пакеты и модули. Пространство имён модуля. Введение в регулярные выражения
Представление даты и времени в компьютере. Проблемы человеческого календаря. Модуль datetime. Часовые пояса. Установка модулей с помощью программы pip
. Библиотека pytz
.
Общая идея объектно-ориентированного программирования. Идея классов. Инкапсуляция. Классы и экземпляры классов. Создание класса. Методы. Создание объекта. Конструктор и инициализация. Поля объекта. Специальные методы. Полиморфизм в Python. Наследование и композиция.
Представление текста в памяти компьютера. Кодировки. Unicode. Способы кодирования Unicode. Тип данных bytes
. Перекодирование текста в Python.
История развития интернета. TCP/IP. DNS. Прикладные протоколы. HTTP. World Wide Web. Браузеры. Языки HTML, CSS. Веб-сайты. Немного про JavaScript.
Библиотека requests. Понятие о REST. Формат данных JSON. Обращение к REST-сервису. Получение данных. Структура HTML-страниц. Скрэпперы. Обработка HTML-страниц. Библиотека BeautifulSoup4. Поиск информации на веб-странице.
Selenium Web Driver. Запуск драйвера браузера. Навигация по странице. Поиск элементов. Управление браузером. Принципы работы веб-сервера.
Статические и динамические ресурсы. Технология CGI. Технология WSGI. Фрэймворки и микрофрэймворки. Виртуальное окружение Python. Файл requirements.txt
. Установка Flask. Простейшее веб-приложение на Flask.
Создание веб-страницы по шаблону. Понятие контекста. Язык шаблонов Jinja2. Условный вывод фрагмента. Циклы. Фильтры и функции. Роутинг. Захват параметров запроса. Наследование шаблонов. Пагинация. Формы HTML. Валидация формы, работа с формой.
История систем управления базами данных. Типы баз данных. Реляционные СУБД. Поля, записи, таблицы. Понятие связи. Язык запросов SQL. Схема базы данных. Поиск, создание, удаление, обновление записей.
Обращение к базе данных SQLite из Python. Понятие курсора. Библиотека для работы с формами Flask-WTF на основе WTForms. Регистрация пользователей. Хранение паролей в базе данных и безопасность. Авторизация и аутентификация. Регистрация пользователей.
Различные типы интерфейсов. Графический интерфейс пользователя. Библиотека tkinter
. Виджеты. Организация интерфейса. События. Реакция на события.
Распараллеливание выполнения кода. Кооперативная и вытесняющая многозадачность. Многопроцессная и многопоточная архитектура. Модуль multiprocessing. Модуль threading. Асинхронное выполнение кода. Модуль asyncio. Корутины. Применение асинхронности на практике. Модуль aiohttp.
Тестирование. Подготовка, оформление. Виды тестов. Автоматизация тестирования. Модуль unittest. Концепция Test-Driven Development (TDD). Оформление отчётов об ошибках.
Общая теория. Анализ данных. Экспертные системы. Идея машинного обучения. Задачи, решаемые с помощью машинного обучения. Ограничения машинного обучения.
Библиотеки Pandas, matplotlib, scikit-learn. Загрузка данных. Анализ данных. Построение модели. Различные алгоритмы машинного обучения. Оценка построенной модели.