О курсе
Python — это самый простой язык программирования в мире. Но в то же время, Python является мощным инструментом, с помощью которого можно решать огромный спектр различных задач, начиная от обработки файлов, и заканчивая машинным обучением, обработкой данных, созданием игр и созданием веб приложений.
Тем самым, выучив Python, вы можете выбирать профессию из большого спектра вакансий, либо же использовать Python для создания собственных приложений и решения собственных задач.
Этот курс включает много практических задач, а также задачи для самостоятельного выполнения.
Python — это объектно-ориентированный язык программирования.
Python — это также язык с огромным количеством функций, но для того чтобы УМЕТЬ писать код на Python, нужно ПОНИМАТЬ ключевые концепции Python. И именно на этом я и сконцентрируюсь вместе с вами в этом курсе.
Прежде чем писать код и запускать примеры, вы получите от меня объяснения и ответы на вопросы ЗАЧЕМ и ПОЧЕМУ, а уже только после этого КАК писать код.
Я не буду тратить ваше время и потому я создал максимально эффективную структуру курса. Все примеры, которые я буду объяснять и запускать, написаны мною до курса, но вы будете самостоятельно писать и запускать код.
Длительность всех видео-лекций в этом курсе более 42 часов, но рассчитывайте потратить около 300 часов для освоения всех тем курса, включая самостоятельное выполнение всех практических заданий.
Темы, которые мы рассмотрим в этом курсе:
- Введение в курс Python
- Где выполнять и писать код Python
- Установка Python
- Установка редактора кода VS Code
- Начало работы в VS Code
- Изменение настроек редактора VS Code
- Знакомство с интерпретатором Python
- Выполнения кода в Visual Studio Code
- Самое важное в Python
- Основные типы в Python
- Практика в интерактивном интерпретаторе Python
- Встроенные функции
- Функция dir и атрибуты объектов
- Практика — Встроенные функции print и dir
- Практика — Встроенная функция input и методы строк
- Отступы в Python
- Форматирование кода Python и PEP8
- Комментарии в Python
- Выражения
- Инструкции
- Переменные
- Объявление переменных и присвоение им значений
- Динамическая типизация
- Типы и структуры данных
- Переменные и объекты
- Встроенная функция id
- Практика — Встроенная функция id и объекты
- Строки — str
- Практика — Строки
- Встроенные функции и методы строк
- Практика — Методы строк
- Целые числа — int
- Практика — Целые числа
- Числа с десятичной точкой — float
- Комплексные числа — complex
- Логический тип — bool
- Практика — Логический тип
- Конвертация типов
- Практика — Введение в магические методы
- Магические методы
- Списки — list
- Методы списков
- Разные операции со списками
- Копирование списков
- Практика — Списки
- Словари — dict
- Изменение и удаление значений в словарях
- Использование переменных в словарях
- Длина словаря
- Несуществующие ключи и метод get
- Резюме по словарям
- Практика — словари
- Практика — Копирование словаря
- Практика — Конвертация других значений в словарь
- Задача — Словари
- Кортежи — tuple
- Методы кортежей
- Практика — Кортежи
- Наборы — set
- Практика — Проверка неупорядоченности наборов
- Изменяемые объекты в наборах
- Практика — Наборы
- Методы наборов
- Практика — Методы наборов
- Практика — Симметричная разница в наборах
- Диапазоны — range
- Практика — Диапазоны
- Сравнение типов последовательностей
- Встроенная функция zip
- Конвертация zip в dict
- Изменение объектов в Python
- Поведение изменяемых объектов
- Как избежать изменения копий
- Практика — Создание поверхностных и полных копий
- Функции
- Самая корткая функция и pass
- Передача неизменяемых объектов в функцию
- Передача изменяемых объектов в функцию
- Как избежать изменения внешних объектов в функции
- Аргументы функций
- Объединение всех аргументов в кортеж в функции
- Аргументы с ключевыми словами
- Объединение именованых аргументов в словарь
- Значения параметров функции по умолчанию
- Практика — Значения параметров по умолчанию
- Колбэк функции
- Практика — Колбэк функции
- Правила работы с функциями
- Документация функции docstring
- Области видимости
- Жизненный цикл переменных
- Ключевое слово global в функциях
- Практика — Глобальные и локальные переменные
- Операторы
- Операторы и магические методы
- Функция dir
- Бинарные и унарные операторы
- Операторы in, not in
- Приоритетность операторов
- Ложные значения
- Логические операторы
- Операторы короткого замыкания or и and
- Практика — Логические операторы
- Оператор распаковки словаря
- Объединение словарей
- Инструкция del
- Соединение строк
- Форматирование строк с f-strings
- Практика — Соединение строк с помощью +
- Практика — f-strings
- Лямбда функции
- Практика — Лямбда функции
- Обработка ошибок
- Получение информации об ошибке
- Разные типы ошибок в разных блоках except
- Блоки else и finally в обработке ошибок
- Отсутствие типа ошибки и класс Exception
- Создание ошибок
- Распаковка списков и кортежей
- Распаковка словаря в именованые аргументы
- Распаковка списка в позиционные аргументы
- Условные инструкции
- Инструкция if
- Инструкция if else
- Инструкция if elif
- Использование if в функциях
- Тернарный оператор
- Практика — Тернарный оператор
- Циклы
- Цикл for in
- Практика — цикл for in
- Итерация по ключам с значениями в словаре
- Цикл for in для наборов
- Встроенная функция filter
- Цикл while
- Использование continue в циклах
- Сокращенный цикл for in
- Примеры с сокращенным циклом for in
- Практика — сокращенный цикл for in
- Генераторы в сокращенном for in
- Практика — генераторы
- Объекты и классы
- Практика — Создание экземпляров класса
- Магический метод классов __init__
- Практика — Объекты с собственными атрибутами
- Методы и экземпляры классов
- Статические методы классов
- Атрибуты класса
- Магические методы в классах
- Наследование из других классов
- Практика — Создание подклассов
- Модули
- Практика — Модули
- Что такое __main__ и __name__
- Встроенные модули
- Создание пакетов
- JSON
- Конвертация JSON в словарь
- Практика — JSON
- Работа с файлами
- Методы класса Path
- Практика — Работа с путями к файлам и директориям
- Чтение и запись файлов
- Практика — Запись и чтение файлов
- Практика — Удаление файлов
- Создание zip архива
- Практика — Распаковка zip архива
- Работа с CSV файлами
- Практика — Чтение из CSV файлов
- Модуль datetime
- Практика — Форматирование дат
- Использование класса timedelta
- Модуль time
- Модуль random
- Модуль secrets для генерации паролей
- Модуль math
- Рекурсивные функции
- Модуль для регулярных выражений re
- Сохранение паттерна в отдельном объекте
- Проверка email с помощью регулярного выражения
- Отправка email с помощью модуля smtplib
- Компоновка и отправка email
- HTML шаблоны для отправки email
- Отправка вложений в email
- Модуль SQLite3 и создание базы данных
- Практика — Запись данных в таблицу SQLite
- Практика — Чтение данных из таблицы SQLite
- Модуль array
- Аргументы функции и модуль sys
- Модуль webbrowser
- Менеджер пакетов PIP
- Виртуальные среды и Pipenv
- Создание виртуальной среды
- Файлы Pipfile и Pipfile.lock
- Использование пакетов в виртуальной среде
- Инсталяция дополнительных пакетов в виртуальной среде
- Дерево пакетов и обновление пакетов
- Обзор проекта Django
- Введение в Django и паттерн MVC
- Установка Django
- Создание нового проекта Django
- Запуск сервера Django
- Выбор виртуальной среды в VS Code
- Файлы проекта Django
- Обзор настроек проекта Django
- Настройки WSGI и ASGI
- Остальные настройки проекта Django
- Настройки роутинга в проекте Django
- Создание приложения Django
- Разница между проектом и приложениями
- Обзор файлов приложения
- Создание функции вида
- Привязка функции вида к маршруту
- Добавление маршрутов приложения к маршрутам проекта
- Проверка доступности приложения в веб интерфейсе
- Применение миграций для базы данных
- Создание аккаунта администратора
- Создание моделей
- Изменение списка установленных приложений
- Создание миграций
- Применение созданных миграций
- Изменение моделей
- Создание категории с помощью модели
- Создание курсов в категории
- Подключение моделей в панели администратора
- Добавление магического метода __str__ в модели
- Отображение названий курсов на веб странице
- Создание HTML шаблона
- Использование данных из базы данных в шаблоне
- Связь между слоями в приложениях Django
- Подключение библиотеки стилей Bootstrap
- Создание базового HTML шаблона
- Добавление общего навигационного блока
- Добавление маршрута для одного курса
- Создание функции вида для страницы курса
- Создание шаблона для страницы курса
- Проверка страницы отдельного курса
- Отображение страницы 404 если курса нет в базе
- Настройка роутинга между страницами
- Роутинг с использованием имен маршрутов
- Роутинг с использований имен приложений и маршрутов
- Перенос шаблонов в общую папку
- Подведение итогов по приложению Shop
- Создание приложения api
- Создание моделей для приложения api
- Настройка роутинга для приложения api
- Проверка работы сервиса API
- Добавление версии API
- Установка программы Postman
- Настройка аутентификации и авторизации для API
- Создание API ключа
- Удаление курса через API
- Создание нового курса с помощью POST
- Изменение данных перед отправкой клиентам через API
- Подведение итогов по приложению api
- Рефакторинг приложения api
- Перенос магазина на главную страницу
- Изменение панели администратора
- Подведение итогов по всему проекту Django
- Введение в Pygame
- Запуск игры и события в Pygame
- Изменение цвета фона в игре
- Добавление прямоугольника в игре
- Перемещение прямоугольника кнопками на клавиатуре
- Перемещение прямоугольника только в рамках экрана
- Подведение итогов по игре с прямоугольником
- Демонстрация игры типа shooter
- Добавление корабля на экран
- Перемещение корабля влево и вправо
- Непрерывное перемещение корабля при нажатой клавише
- Добавление шарика на экране
- Перемещение и скрытие шарика
- Отображение инопланетянина в игре
- Добавление проигрыша в игре
- Попадание шарика в инопланетянина
- Ускорение движения инопланетянина
- Добавления счетчика попаданий
- Подведение итогов по созданию игры
- Введение в Data Science и Machine Learning
- Установка и запуск Jupyter Notebook
- Знакомство с Jupyter Notebook
- Использование переменных в Jupyter
- Импорт из встроенных модулей в Jupyter
- Установка внешних модулей в Jupyter
- Использование внешних модулей в Jupyter
- Установка Jupyter Lab
- Знакомство с Jupyter Lab
- Добавление оглавления и разметка
- Управление файлами, консоль и терминал в Jupyter Lab
- Текстовые файлы и подсказки в Jupyter Lab
- Обзор Anaconda
- Введение в NumPy
- Создание одномерных массивов в NumPy
- Форма, размерность и тип данных в NumPy
- Двухмерные массивы в NumPy
- Оси в массивах NumPy
- Слияние массивов NumPy
- Соединение одномерных массивов
- Заполнение массива нулями и единицами
- Модуль random для массивов NumPy
- Псевдо случайные числа
- Методы randint, uniform и choice
- Методы arange и reshape
- Метод flatten для трансформации в одномерный массив
- Одномерные массивы в NumPy — Примеры 1, 2
- Одномерные массивы в NumPy — Примеры 3, 4
- Двухмерные массивы в NumPy — Пример 5
- Двухмерные массивы в NumPy — Пример 6
- Трехмерные массивы в NumPy — Пример 7
- Резюме секции по NumPy
- Обзор Pandas и создание DataFrame
- Обзор DataFrame в Pandas
- Метод describe для DataFrame в Pandas
- Выбор колонок по типу данных
- Отсутствующие значения и метод isna
- Конвертация строк в даты
- Подведение итогов по DataFrame
- Series в Pandas
- Операции с Series в Pandas
- Выборка столбцов и рядов в DataFrame с помощью loc и iloc
- Фильтрация в DataFrame
- Фильтрация с помощью метода isin
- Сортировка в DataFrame
- Подведение итогов по фильтрации и сортировке DataFrames
- Добавление и изменение данных в DataFrame
- Слияние DataFrames
- Удаление колонок и рядов в DataFrame
- Подведение итогов по слиянию и изменению DataFrames
- Генерация случайных данных для DataFrame
- Сохранение DataFrame в CSV файле
- Создание DataFrame из CSV файла
- Сохранение DataFrame в Excel и JSON файлах
- Анализ и группирование данных, загруженных из CSV файла
- Отображение диаграмм с помощью Matplotlib
- Подведение итогов по проекту с данными из CSV файла
- Подведение итогов по пакету Pandas
- Введение в Matplotlib и базовые диаграммы
- Примеры plot диаграмм — line, bar, area, pie
- Пример гистограммы
- Пример диаграммы boxplot
- Пример диаграммы heatmap
- Резюме по примерам диаграмм
- Загрузка данных из CSV файла для визуализации
- Отображение реальных данных на диаграммах
- Диаграммы для транспонированного DataFrame
- Подведение итогов по визуализации реальных данных из CSV файла
- Подведение итогов по Matplotlib и Seaborn
- Введение в Scikit-learn и обзор данных для создания модели
- Планирование шагов по построению модели
- Этап очистки данных перед построением модели
- Попытка создания модели
- Этап кодирования с помощью метода replace
- Замена значений на цифровые с помощью LabelEncoder
- Создание модели после очистки и кодирования данных
- Предсказание целевых значений с помощью модели
- Разбиение данных на части для обучения и тестирования модели
- Оценка точности построенной модели
- Экспорт модели в .dot файл для визуализации процесса принятия решений
- Отображение диаграмм на основании данных для модели
- Подведение итогов по созданию модели
- Загрузка большого реального набора данных для построения модели
- Загрузка данных из большого CSV файла и базовый анализ
- Очистка данных после загрузки
- Отображение диаграмм на этапе анализа данных
- Кодирование данных перед созданием модели
- Отображение дополнительных диаграмм
- Фильтрация данных на этапе анализа
- Создание модели с помощью DecisionTreeClassifier
- Оценка точности модели, построенной с помощью DecisionTreeClassifier
- Создание моделей с помощью RandomForestClassifier, KNeighborsClassifier и LogisticRegression
- Итоги по построению моделей и планы для изменения данных
- Построение модели без отзывов пассажиров
- Тестирование модели на основании вручную созданных данных
- Подведение итогов по модели без отзывов пассажиров
- Сохранение модели в файле и загрузка из файла
- Подведение итогов по примеру с пассажирами
Список задач для самостоятельного выполнения
- ЗАДАЧА — Запись и чтение файлов
- ЗАДАЧА — JSON
- ЗАДАЧА — Классы и экземпляры
- ЗАДАЧА — Наборы
- ЗАДАЧА — Обработка ошибок
- ЗАДАЧА — Операторы
- ЗАДАЧА — Проверка пароля
- ЗАДАЧА — Словари
- ЗАДАЧА — Условные инструкции
- ЗАДАЧА — Функции
- ЗАДАЧА — Цикл while
- ЗАДАЧИ — Именованые аргументы функций
- ЗАДАЧИ — Сокращенный цикл for in
- ЗАДАЧИ — Списки
- ЗАДАЧИ — Тернарный оператор
- ЗАДАЧИ — Цикл for in
- ЗАДАЧИ — Сокращенный цикл for in
- ЗАДАЧА — Классы и экземпляры
- ЗАДАЧА — JSON
- ЗАДАЧА — Запись и чтение файлов
- ЗАДАЧА — Проверка пароля
После прохождения этого курса вы смело сможете сказать, что ЗНАЕТЕ Python и УМЕЕТЕ пользоваться самыми востребованными функциями Python.