Введение в Python
- Скачать исходный код
- Присоединиться к чату в Telegram
- Почему Python?
- Python с технической точки зрения
- Python 2 vs Python 3
- Стандартная библиотека
- Редакторы кода для Python
- Инсталлируем дистрибутив Anaconda
- Введение в Anaconda
- Jupyter Notebook не запускается через Anaconda Navigator?
- Базовые сведения о Python
Основы Python
- Обзор основных типов данных
- Числа и элементарная математика
- Переменные
- bool и None
- Тип string
- Функции string
- Форматирование строк
- Операторы сравнения
- Операции над файлами
- Строки и байты: str, bytes, bytearray
- Основы Python
- Элементарная арифметика
- Объявление переменных
- Работа со строками
- Решение ДЗ 1-3
- ДЗ: Основы
- ДЗ: Основы - Решение
Коллекции, циклы и логика в Python
- list - список
- dict - словарь
- OrderedDict vs dict
- tuple - кортеж
- namedtuple - именованные кортежи
- Логика с условиями
- set - множество
- Цикл for
- list comprehension
- Цикл while, continue, break
- Замечания к последующим ДЗ
- Циклы. ДЗ-1-2
- Циклы. ДЗ-1-2. Решение
- Циклы. ДЗ-3 Division by 3 or 5
- Циклы. ДЗ-4-Joined List
- Циклы. ДЗ-5-Cards Sum
- Циклы. ДЗ 3-5. Решение
- Циклы. ДЗ 6. Определяем Flush
- Циклы. ДЗ-6-Флеш. Решение
- Циклы. ДЗ 7. Палиндром
- Циклы. ДЗ 7 - Палиндром. Решение
- Домашнее задание: угадай число
- Решение ДЗ: пишем игру "угадай число"
- ДЗ "Камень-ножницы-бумага"
- Решение ДЗ "Камень-ножницы-бумага"
- Коллекции и циклы
Функции и модули
- Помощь по функциям
- Встроенные функции
- Основы функций
- Лямбды
- Вложенные функции и область видимости переменных
- Декораторы
- Декоратор @wraps
- Опросник по функциям
- Примечание к последующим ДЗ
- ДЗ: Кто выстрелил быстрее?
- ДЗ: Ханойские башни
- ДЗ: Без дуплетов!
- ДЗ: Мини-судоку
- Решения ДЗ по функциям
- Домашнее задание: игра в палочки
- Решение ДЗ: пишем игру в палочки
Ошибки и исключения. Автоматизированные тесты
- Основы обработки ошибок
- Выброс исключений. Кастомные типы исключений.
- Основы юнит-тестирования
- Работа с ошибками
ООП в Python
- Основы классов
- Атрибуты и методы
- Константы. Защищённые и приватные атрибуты. Свойства.
- Статические методы - @staticmethod, @classmethod
- Наследование и полиморфизм
- Множественное наследование
- Миксины
- Абстрактный класс и модуль ABC
- Магические методы
- Примечание к последующим ДЗ
- ДЗ-1: ФИО
- ДЗ-2: Класс калькулятора
- ДЗ-3: Парсинг сотрудника
- ДЗ-4 "Пицца"
- ДЗ-5: Окружность
- ДЗ-6: Смузи
- ДЗ: 1-3 Решения
- ДЗ: 4-6. Решения
- Домашнее задание: крестики-нолики
- Решение ДЗ: реализуем крестики-нолики
- ООП в Python
Модули и пакеты
- PyPi и Pip
- Модули и пакеты
- Ещё раз о __name__ и __main__
- Модули и пакеты
Дополнительно
- Отладка
- Реализуем Stack
- datetime - даты и время
- Singleton Design Pattern: __new__ и __init__
- Pickle - консервирование
- repr and str, eq and ne, eval
- Deep copy vs Shallow copy
- Enum - перечисления
- Работаем с JSON
- Генераторы
- Модуль itertools
- Интроспекция
- Модуль requests
- Управление памятью
- Advanced Topics
Движемся дальше
- Введение в Линтеры
- Установка "системного" Python
- Виртуальное окружение
- Установка PyCharm
- Создаём проект в PyCharm
- Refactoring, Quick Fixes, Debugging в PyCharm
- Type Hints
- Введение в dataclasses
Что нового в Python 3.8
- Обзор нововведений
- Устанавливаем Python 3.8 и создаём проект
- Walrus-оператор
- Навязывание позиционных аргументов
- Улучшения в системе type hints
- Перегрузка с @overload
- Duck Typing и протоколы
- Упрощённый вывод значений в интерполированных строках
Финальная практика
- ДЗ-1: считаем гласные
- ДЗ-2: определяем FULL HOUSE
- ДЗ-3: уровни сладости
- ДЗ-4: возрастает или убывает
- ДЗ-5: Пагинация
- ДЗ: 1-4 Решения
- ДЗ-5: Решение
- Домашнее задание: парсинг римских чисел
- Решение ДЗ: парсим римские числа
- ДЗ - Виселица
- Решение ДЗ - Виселица
- ДЗ - Верю-не-верю (истина или ложь)
- Решение ДЗ: верю-не-верю
Допматериалы-1. Введение в многопоточное программирование
- Терминология
- Процессы и потоки
- Виды процессинга
- GIL
Допматериалы-1. Модуль Threading
- Однопоточность. Демо проблемы
- Foreground & Background потоки
- "Параллельное" исполнение против последовательного
- Executor API
- submit-демо
- map-демо
- Синхронизация потоков
- Гонка и Lock
- Deadlock
- Демо дэдлока
- Синхронизация сигналами
- Применяем Event
- Семафор
- Моделируем ночной клуб семафором
- Барьер
- Атомические операции
- Отмена потоков
- Отмена убийством процесса
- Базовая отмена с флагом
- Имплементируем отмену через Unit of Work-паттерн
- Подытоги
- Обработка исключений
- Обработка исключений - Демо
Допматериалы-1. Модуль asyncio
- Введение в asyncio
- Простейший пример с asyncio
- Event Loop. Введение
- Event Loop. Демо
- Демо с aiohttp
- Демо с aiofiles
- Futures & Tasks
- Task API - Демо
- Обёртываем Thread через Future
- async for
- Обработка исключений
- Обработка исключений - Демо
- Отмена. Введение
- Отмена с gather
- Отмена с wait. Кооперативная отмена
- async IO vs sync IO
Введение в SQL
- Основные концепции
- Реляционная модель и SQL
- Почему PostgreSQL
- Инсталируем PostgreSQL
- Типы данных в PostgreSQL
- Создание БД
- Создание таблиц
- Отношение "один ко многим"
- Отношение "один к одному"
- Отношение "многие ко многим"
- Создаём Northwind
Простые запросы с SELECT
- Полная выборка
- Выборка и элементарные арифметические операции
- DISTINCT
- COUNT
- ДЗ "простые выборки"
- ДЗ "простые выборки" - Решение
- WHERE
- AND, OR
- BETWEEN
- IN & NOT IN
- ORDER BY
- MIN, MAX, AVG
- ДЗ "простые выборки-2"
- ДЗ "простые выборки-2" - Решение
- LIKE
- LIMIT
- Check on NULL
- GROUP BY
- HAVING
- UNION, INTERSECT, EXCEPT
- ДЗ "группировка, сопоставление, сортировка"
- ДЗ "группировка, сопоставление, сортировка" -
- Решение
Соединения - Joins
- Знакомство с соединениями
- INNER JOIN
- LEFT, RIGHT JOIN
- SELF JOIN
- USING & NATURAL JOIN
- AS - псевдонимы
- ДЗ "JOINS"
- ДЗ "JOINS" - Решение
Подзапросы
- Введение в подзапросы
- WHERE EXISTS
- Подзапросы с квантификаторами ANY, ALL
- ДЗ "Подзапросы"
- ДЗ "Подзапросы" - Решение
DDL - управляем БД и таблицами
- Управляем таблицами
- ДЗ 1 по DDL
- ДЗ 1 по DDL - Решение
- Primary Key
- Foreign Key
- Check
- Default
- Sequences
- Sequences & Tables
- INSERT
- UPDATE, DELETE, RETURNING
- ДЗ 2 по DDL
- ДЗ 2 по DDL - Решение
Python & SQL
- Введение
- psycopg2
- ORM и SQLAlchemy
BONUS
- Бонусная лекция