О курсе
Python — это самый простой язык программирования в мире. Но в то же время, Python является мощным инструментом, с помощью которого можно решать огромный спектр различных задач, начиная от обработки файлов, и заканчивая машинным обучением, обработкой данных, созданием игр и созданием веб приложений.
Тем самым, выучив Python, вы можете выбирать профессию из большого спектра вакансий, либо же использовать Python для создания собственных приложений и решения собственных задач.
Этот курс включает много практических задач, а также задачи для самостоятельного выполнения.
Python — это объектно-ориентированный язык программирования.
Python — это также язык с огромным количеством функций, но для того чтобы УМЕТЬ писать код на Python, нужно ПОНИМАТЬ ключевые концепции Python.
Чему вы научитесь?
- Вы узнаете основные принципы работы Python и изучите все основные функции, которые используются в реальных проектах чаще всего и востребованные больше всех
- Вы будете выполнять на практике все примеры, которые я буду показывать на протяжении курса, используя интерпретатор Python, Visual Studio Code с Code Runner
- Вы изучите основной функционал Python, начиная от переменных, списков, словарей и заканчивая классами, циклами, модулями и созданием виртуальных сред
- Кроме того, вы научитесь использовать функциональный и объектно-ориентированный подходы в программировании на языке Python
Содержание курса
Введение в Python
-
Введение в курс Python
-
Присоединяйтесь к сообществу единомышленников!
-
Как проходить курс
-
Где выполнять и писать код Python
-
Установка Python
Установка и настройка редактора Visual Studio Code
-
Установка редактора кода VS Code
-
Начало работы в VS Code
-
Изменение настроек редактора VS Code
-
Знакомство с интерпретатором Python
-
Выполнения кода в Visual Studio Code
Установка PyCharm
-
Установка и использование PyCharm
Основные концепции в Python
-
Самое важное в Python
-
Основные типы в Python
-
Практика в интерактивном интерпретаторе Python
Встроенные функции в Python
-
Встроенные функции
-
Функция dir и атрибуты объектов
-
Практика — Встроенные функции print и dir
-
Практика — Встроенная функция input и методы строк
Форматирование кода и PEP8
-
Отступы в Python
-
Форматирование кода Python и PEP8
-
Комментарии в Python
Выражения и инструкции
-
Выражения
-
Инструкции
Переменные
-
Переменные
-
Объявление переменных и присвоение им значений
Типы и структуры данных
-
Динамическая типизация
Типы и структуры данных
-
Переменные и объекты
-
Встроенная функция id
-
Практика — Встроенная функция id и объекты
Строки
-
Строки — str
-
Практика — Строки
-
Встроенные функции и методы строк
-
Практика — Методы строк
Целые и другие числа в Python
-
Целые числа — int
-
Практика — Целые числа
-
Числа с десятичной точкой — float
-
Комплексные числа – complex
Логический тип
-
Логический тип — bool
-
Практика — Логический тип
Магические методы
-
Конвертация типов
-
Практика — Введение в магические методы
Магические методы
-
Списки
-
Списки — list
-
Методы списков
-
Разные операции со списками
-
Копирование списков
-
Практика — Списки
-
ЗАДАЧИ — Списки
-
РЕШЕНИЯ – Списки
Словари
-
Словари — dict
-
Изменение и удаление значений в словарях
-
Использование переменных в словарях
-
Длина словаря
-
Несуществующие ключи и метод get
-
Резюме по словарям
-
Практика — словари
-
Практика — Копирование словаря
-
Практика — Конвертация других значений в словарь
-
ЗАДАЧА — Словари
-
РЕШЕНИЕ – Словари
Кортежи
-
Кортежи — tuple
-
Методы кортежей
-
Практика – Кортежи
Наборы
-
Наборы — set
-
Практика — Проверка неупорядоченности наборов
-
Изменяемые объекты в наборах
-
Практика — Наборы
-
Методы наборов
-
Практика — Методы наборов
-
Практика — Симметричная разница в наборах
-
ЗАДАЧА — Наборы
-
РЕШЕНИЕ – Наборы
Диапазоны
-
Диапазоны — range
-
Практика — Диапазоны
-
Сравнение типов последовательностей
Функция zip
-
Встроенная функция zip
-
Конвертация zip в dict
Изменение объектов в Python
-
Изменение объектов в Python
-
Поведение изменяемых объектов
-
Как избежать изменения копий
-
Практика — Создание поверхностных и полных копий
Функции
-
Функции
-
Самая короткая функция и pass
-
Передача неизменяемых объектов в функцию
-
Передача изменяемых объектов в функцию
-
Как избежать изменения внешних объектов в функции
-
ЗАДАЧА — Функции
-
РЕШЕНИЕ – Функции
Аргументы функций
-
Аргументы функций
-
Объединение всех аргументов в кортеж в функции
-
Аргументы с ключевыми словами
-
Объединение именованых аргументов в словарь
-
ЗАДАЧИ — Именованые аргументы функций
-
РЕШЕНИЯ — Именованые аргументы функций
Параметры функций по умолчанию
-
Значения параметров функции по умолчанию
-
Практика — Значения параметров по умолчанию
Колбэк функции
-
Колбэк функции
-
Практика — Колбэк функции
Как работать с функциями
-
Правила работы с функциями
-
Документация функции docstring
-
Области видимости
-
Жизненный цикл переменных
-
Ключевое слово global в функциях
-
Практика — Глобальные и локальные переменные
Операторы
-
Операторы
-
Операторы и магические методы
-
Функция dir
-
Бинарные и унарные операторы
-
Операторы in, not in
-
Приоритетность операторов
-
ЗАДАЧА — Операторы
-
РЕШЕНИЕ — Операторы
-
Ложные значения
Логические операторы
-
Логические операторы
-
Операторы короткого замыкания or и and
-
Практика — Логические операторы
Распаковка словарей
-
Оператор распаковки словаря
-
Объединение словарей
Инструкция del
-
Инструкция del
-
Соединение строк
-
Соединение строк
-
Форматирование строк с f-strings
-
Практика — Соединение строк с помощью +
-
Практика — f-strings
Лямбда функции
-
Лямбда функции
-
Практика — Лямбда функции
Обработка ошибок
-
Обработка ошибок
-
Получение информации об ошибке
-
Разные типы ошибок в разных блоках except
-
Блоки else и finally в обработке ошибок
-
Отсутствие типа ошибки и класс Exception
-
Создание ошибок
-
ЗАДАЧА — Обработка ошибок
-
РЕШЕНИЕ — Обработка ошибок
Распаковка списков и кортежей
-
Распаковка списков и кортежей
-
Распаковка словаря в именованые аргументы
-
Распаковка списка в позиционные аргументы
Условные инструкции if
-
Условные инструкции
-
Инструкция if
-
Инструкция if else
-
Инструкция if elif
-
Использование if в функциях
-
ЗАДАЧА — Условные инструкции
-
РЕШЕНИЕ — Условные инструкции
Тернарный оператор
-
Тернарный оператор
-
Практика — Тернарный оператор
-
ЗАДАЧИ — Тернарный оператор
-
РЕШЕНИЯ — Тернарный оператор
Цикл for in
-
Циклы
-
Цикл for in
-
Практика — цикл for in
-
Итерация по ключам с значениями в словаре
-
Цикл for in для наборов
-
ЗАДАЧИ — Цикл for in
-
РЕШЕНИЯ — Цикл for in
-
РЕШЕНИЕ — Встроенная функция filter
Цикл while
-
Цикл while
-
Использование continue в циклах
-
ЗАДАЧА — Цикл while
-
РЕШЕНИЕ — Цикл while
Сокращенный цикл for in
-
Сокращенный цикл for in
-
Примеры с сокращенным циклом for in
-
Практика — сокращенный цикл for in
-
ЗАДАЧИ — Сокращенный цикл for in
-
РЕШЕНИЯ — Сокращенный цикл for in
-
Генераторы в сокращенном for in
-
Практика – генераторы
Объекты и классы
-
Объекты и классы
-
Практика — Создание экземпляров класса
-
Магический метод классов __init__
-
Практика — Объекты с собственными атрибутами
-
ЗАДАЧА — Классы и экземпляры
-
РЕШЕНИЕ — Классы и экземпляры
-
Методы экземпляров и классов
-
Статические методы классов
-
Атрибуты класса
Магические методы в классах
-
Магические методы в классах
-
Наследование из других классов
-
Практика — Создание подклассов
Модули
-
Модули
-
Практика — Модули
-
Что такое __main__ и __name__
-
Встроенные модули
-
Создание пакетов
JSON
-
JSON
-
Конвертация JSON в словарь
-
Практика — JSON
-
ЗАДАЧА — JSON
-
РЕШЕНИЕ – JSON
Работа с файлами
-
Работа с файлами
-
Методы класса Path
-
Практика — Работа с путями к файлам и директориям
-
Чтение и запись файлов
-
Практика — Запись и чтение файлов
-
Практика — Удаление файлов
-
ЗАДАЧА — Запись и чтение файлов
-
РЕШЕНИЕ — Запись и чтение файлов
Работа с zip архивами
-
Создание zip архива
-
Практика — Распаковка zip архива
Работа с CSV файлами
-
Работа с CSV файлами
-
Практика — Чтение из CSV файлов
Работа с датами и временем
-
Модуль datetime
-
Практика — Форматирование дат
-
Использование класса timedelta
-
Модуль time
Модули для работы с числами
-
Модуль random
-
Модуль secrets для генерации паролей
-
Модуль math
-
Рекурсивные функции
Работа с регулярными выражениями
-
Модуль для регулярных выражений re
-
Сохранение паттерна в отдельном объекте
-
Проверка email с помощью регулярного выражения
-
ЗАДАЧА — Проверка пароля
-
РЕШЕНИЕ — Проверка пароля
Отправка email
-
Отправка email с помощью модуля smtplib
-
Компоновка и отправка email
-
HTML шаблоны для отправки email
-
Отправка вложений в email
Работа с базой данных SQLite
-
Модуль SQLite3 и создание базы данных
-
Практика — Запись данных в таблицу SQLite
-
Практика — Чтение данных из таблицы SQLite
Другие встроенные модули
-
Модуль array
-
Аргументы функции и модуль sys
-
Модуль webbrowser
Виртуальные среды, PIP и Pipenv
-
Менеджер пакетов PIP
-
Виртуальные среды и Pipenv
-
Создание виртуальной среды
-
Файлы Pipfile и Pipfile.lock
-
Использование пакетов в виртуальной среде
-
Инсталляция дополнительных пакетов в виртуальной среде
-
Дерево пакетов и обновление пакетов
Введение в веб фреймворк Django
-
Обзор проекта Django
-
Финальная версия проекта Django
-
Введение в Django и паттерн MVC
-
Установка Django
Создание проекта Django
-
Создание нового проекта Django
-
Запуск сервера Django
-
Выбор виртуальной среды в VS Code
-
Файлы проекта Django
-
Обзор настроек проекта Django
-
Настройки WSGI и ASGI
-
Остальные настройки проекта Django
-
Настройки роутинга в проекте Django
Создание приложения Django
-
Создание приложения Django
-
Разница между проектом и приложениями
-
Обзор файлов приложения
-
Создание функции вида
-
Привязка функции вида к маршруту
-
Добавление маршрутов приложения к маршрутам проекта
-
Проверка доступности приложения в веб интерфейсе
База данных и миграции в Django
-
Применение миграций для базы данных
-
Создание аккаунта администратора
-
Создание моделей
-
Изменение списка установленных приложений
-
Создание миграций
-
Применение созданных миграций
-
Изменение моделей
-
Создание категории с помощью модели
-
Создание курсов в категории
-
Подключение моделей в панели администратора
-
Добавление магического метода __str__ в модели
-
Отображение названий курсов на веб странице
Создание шаблонов в Django
-
Создание HTML шаблона
-
Использование данных из базы данных в шаблоне
-
Связь между слоями в приложениях Django
-
Подключение библиотеки стилей Bootstrap
-
Создание базового HTML шаблона
-
Добавление общего навигационного блока
Роутинг между страницами в Django
-
Добавление маршрута для одного курса
-
Создание функции вида для страницы курса
-
Создание шаблона для страницы курса
-
Проверка страницы отдельного курса
-
Отображение страницы 404 если курса нет в базе
-
Настройка роутинга между страницами
-
Роутинг с использованием имен маршрутов
-
Роутинг с использований имен приложений и маршрутов
-
Перенос шаблонов в общую папку
-
Подведение итогов по приложению Shop
Создание сервиса API в Django
-
Создание приложения api
-
Создание моделей для приложения api
-
Настройка роутинга для приложения api
-
Проверка работы сервиса API
-
Добавление версии API
-
Установка программы Postman
-
Настройка аутентификации и авторизации для API
-
Создание API ключа
-
Удаление курса через API
-
Создание нового курса с помощью POST
-
Изменение данных перед отправкой клиентам через API
Итоги по проекту Django
-
Подведение итогов по приложению api
-
Рефакторинг приложения api
-
Перенос магазина на главную страницу
-
Изменение панели администратора
-
Подведение итогов по всему проекту Django
Создание игр с помощью Pygame
-
Введение в Pygame
-
Финальная версия проекта Pygame
-
Запуск игры и события в Pygame
-
Изменение цвета фона в игре
Добавление и перемещение объектов в Pygame
-
Добавление прямоугольника в игре
-
ЗАДАЧА — Поместить прямоугольник по центру экрана
-
РЕШЕНИЕ — Поместить прямоугольник по центру экрана
-
Перемещение прямоугольника кнопками на клавиатуре
-
Перемещение прямоугольника только в рамках экрана
-
Подведение итогов по игре с прямоугольником
Создание игры типа shooter с Pygame
-
Демонстрация игры типа shooter
-
Добавление корабля на экран
-
Перемещение корабля влево и вправо
-
Непрерывное перемещение корабля при нажатой клавише
-
Добавление шарика на экране
-
Перемещение и скрытие шарика
-
Отображение инопланетянина в игре
-
Добавление проигрыша в игре
Логика в играх Pygame
-
Попадание шарика в инопланетянина
-
Ускорение движения инопланетянина
-
Добавления счетчика попаданий
-
Подведение итогов по созданию игры