Python-100 дней от новичка до мастера
Можно заплатить за курсы, на которых за неделю, месяц голопом по Европам - каша в голове, а можно планомерно
изучать самому спокойно все по очереди и вырасти до профессионала. План составлен,
будем действовать! Жопу Волю в кулак и вперед!!!
День 01 ~ 15 - Основы языка Python
День 01 - Знакомство с Python
- Введение в Python-История Python / Преимущества и недостатки Python / Области применения Python
- Настройка среды программирования - среда Windows / среда Linux
- Запустить программу Python из терминала - Hello, world / print function / run program
- Используйте IDE- PyCharm / напишите несколько строк кода / запустите программу / выйдите из IDE
- Комментарии - роль комментариев / однострочный комментарий / многострочный комментарий
- Примеры:
- 01.привет_мир.py
- 02.рисуем_флаг.py
- 03.рисуем_свинку.py
День 02 - Элементы языка
- Переменные и типы - именование переменных / использование переменных / функция ввода / проверка типа / преобразования типа переменной
- Числа и строки: целые числа / числа с плавающей запятой / комплексные числа / строка / основные операции со строками / кодировка символов
- Операторы-математические операторы / Операторы присваивания / Операторы сравнения / Логические операторы / Операторы идентичности / Приоритет операторов
- Примеры:
- 01.переменные.py - присваивание переменных и операции над ними
- 02.переменные.py - ввод переменных и операции над ними, простой вывод результатов
- 03.переменные.py - ввод переменных и операции над ними, подробный вывод результатов
- 04.переменные.py - присваивание переменных и определение их типа
- 05.переменные.py - присваивание переменных вывод их значений и тип
- 06.преобразователь_градусов.py - Преобразовать Фаренгейты в Цельсия
- 07.расчет_окружности.py - Введите радиус, чтобы вычислить длину окружности и площадь круга.
- 08.операторы.py - ввод переменных и операции над ними, подробный вывод результатов
- 09.строки.py - операции над строковыми переменными
- 10.високосный_год.py - ввод года и вывод: високосный или нет
День 03 - Условные операторы
- Сценарии применения структуры ветвления-условие
- простая инструкция if / if-else структура / if-elif-else структура / вложенная if
- Примеры:
- 01.дюймы_сантиметры.py
- 02.перевод_оценок.py
- 03.решение_функции.py
- 04.бросить_кости.py
- 05.расчет_налога.py
- 06.треугольник.py
- 07.аутентификация.py.py
День 04- Циклическая структура
- Сценарии применения цикла for-in условие / while цикл / оператор прерывания / оператор продолжения
- Примеры:
- 01.for.py
- 02.for.py
- 03.for.py
- 04.for.py
- 05.for.py
- 06.for.py
- 07.while.py
- 08.while.py
- 09.угадай_число_до_100.py
День 05 - Построение логики программы
- Классический кейс: количество нарциссов / сотня денег и сотня цыплят / игра в кости
- Практические вопросы:
- 01.число_нарцисов.py
- 02.сотня_цыплят.py
- 03.игра_в_кости.py
- 04.Фибоначчи.py
- 05.идеальное_число.py
- 06.простое_число.py
День 06 - Использование функций и модулей
- Роль функций - неприятный запах кода / инкапсуляция функциональных модулей с функциями
- Определение оператора функции / имени функции / списка параметров / оператора возврата / вызова пользовательской функции
- Вызов функции - встроенные функции Python / импорт модулей и функций
- Параметры функции - параметры по умолчанию / параметры переменных / параметры ключевого слова / параметры именованного ключевого слова
- Возвращаемое значение функции - нет возвращаемого значения / вернуть одно значение / вернуть несколько значений
- Проблемы области - локальная область / вложенная область / глобальная область / встроенная область / ключевые слова, связанные с областью действия
- Управление функциями с помощью модулей - концепция модулей / использование настраиваемых модулей для управления функциями / что происходит при конфликтах имен (один и тот же модуль и разные модули)
- Примеры:
- 01.общий_делитель_кратное.py
- 02.встроенные_функции.py
- 03.общие_модули.py
День 07 - Строки, список, кортеж, множество, словарь
- Использование строковых вычислений длины / индексации / нарезки / общих методов
- Базовое использование списка с определением списка / использование таблицы для доступа к элементу / добавление элемента / удаление элемента / изменение элемента / срез / обход цикла
- Общие операции со списком - объединение / копирование (копирование элементов и копирование массива) / длина / сортировка / поиск
- Генерация списка использования диапазона для создания списка чисел / генерации выражений
- Использование кортежей - определение кортежей / использование значений в кортежах / изменение переменных кортежей / кортежи и преобразование списков
- Базовое использование множества - разница между множеством и списком / создать / добавить элемент / удалить элемент / пусто
- Общие операции над множеством - пересечение / объединение / разность / симметричная разность / подмножество / надмножество
- Основное использование словаря - характеристики словаря / создать словарь / добавить элементы / удалить элементы / принять значения / пусто
- Общие операции со словарем - метод ключей () / метод значений () / метод items () / метод setdefault ()
- Примеры:
- 01.Фибоначчи.py
- 02.бегущая_строка.py
- 03.найди_наибольшее.py
- 04.крестики-нолики.py
- 05.треугольник_Ян_Хуэя.py
День 08 - Основы объектно-ориентированного программирования
- Классы и объекты - что такое класс / что такое объект / другие связанные объектно-ориентированные концепции
- Определите базовую структуру класса / атрибуты и методы / конструктор / деструктор / метод str
- Использовать объекты - создавать объекты / отправлять сообщения объектам
- Инкапсуляция в Python / Документация класса в Python
- Базовые упражнения - определение класса ученика / определение класса часов / определение класса графики / определение класса автомобиля
День 09 - Продвинутое объектно-ориентированное программирование
- Атрибуты класса / атрибуты экземпляра / средства доступа к атрибутам / модификаторы атрибутов / средства удаления атрибутов / использование slots
- Методы в методе класса-экземпляра / методы класса / статические методы
- Перегрузка оператора -__ add__ / sub / or / __ getitem__ / setitem / len / repr / gt / lt / le / ge / eq / ne / contains
- Отношения между классами (объектов) - ассоциация / наследование / зависимость
- Наследование и полиморфизм - что такое наследование / синтаксис наследования / вызов родительского метода / переписывание метода / определение типа / множественное наследование / алмазное наследование и алгоритм C3
- Примеры:
- 01.Связь_между_объектами.py
- 02.атрибуты.py
- 03.атрибуты.py
- 04.зависимости.py
- 05.множественное_наследование.py
- 06.множественное_наследование.py
- 07.переопределение.py
- 08.перегрузка_оператора.py
- 09.унаследованные_приложения.py
- 10.метод_экземпляра.py
День 10 - Графический интерфейс и разработка игр
- Используйте tkinter для разработки программ с графическим интерфейсом
- Используйте трехстороннюю библиотеку pygame для разработки игровых приложений
- Примеры:
- 01.графический_интерфейс.py
- 02.игра_камнями.py
- 03.анимация_движение.py
- 04.игра_мячи.py
- 05.игра_Gobang.py
- 06.Змейка.py
- 07.Звезда.py
День 11 - Файлы и исключения
- Читать файл - читать весь файл / читать построчно / путь к файлу
- Запись, перезапись файла / дополнительная запись / текстовый файл / двоичный файл
- Обработка исключений - важность механизма исключения / try-except блок кода / блок кода else
встроенный тип исключения / стек исключения / оператор повышения - Сохранение данных - Обзор файла CSV / Применение модуля csv / Применение формата данных JSON / Применение модуля json
- Примеры:
- 01.обработка_исключений.py
- 02.обработка_исключений.py
- 03.обработка_исключений.py
- 04.обработка_исключений.py
- 05.чтение_текст_файла.py
- 06.чтение_текст_файла.py
- 07.запись_текст_файла.py
- 08.чтение_запись_изображений.py
- 09.чтение_csv.py
- 10.запись_csv.py
- 11.чтение_json.py
- 12.запись_json.py
День 12 - Строки и регулярные выражения
- Расширенные манипуляции со строками - escape-символы / исходные строки / многострочные строки / методы соединения и разделения / методы, связанные с разделением / модуль pyperclip / инвариантные строки и переменные символы Использование String / StringIO
- Введение в регулярные выражения - роль регулярных выражений / метасимволов / экранирований / квантификаторов / группировка / утверждения нулевой ширины / ленивое сопоставление / использование модуля re для выполнения операций с регулярными выражениями (сопоставление, поиск, замена, захват)
- Пример:
- 01.операции_строки.py
- 02.переворот_строки.py
- 03.проверка_имени.py
- 04.регулярное_выражение.py
- 05.фильтрация.py
- 06.разделение_строки.py
День 13 - Процессы и потоки
- Концепция процессов и потоков - что такое процесс / что такое поток / сценарии многопоточного приложения
- Использование функции ветвления процесса / модуля многопроцессорности / пула процессов / межпроцессного взаимодействия
- Используйте модуль потоковой передачи / класс потока / класс блокировки / класс условия / пул потоков
- Примеры:
- 01.последовательная_работа.py
- 02.много_процесс.py
- 03.многопоточная_загрузка.py
- 04.многопоточная_загрузка.py
- 05.многопоточная_работа.py
- 06.многопоточная_работа.py
- 07.однопоточная_работа.py
- 08.многопоточная_работа.py
- 09.однопоточная_работа.py
- 10.многопроцессорная_работа.py
- 11.асихронная_работа.py
- 12.асихронная_работа.py
- 13.асихронная_работа.py
- 14.курьер.py
- 15.курьер.py
- 16.многопоточная_загрузка.py
- 17.генератор_чисел.py
- 18.Фибоначчи.py
- 19.межпроцессное_взаимодействие.py
День 14 - Введение в сетевое программирование и разработку сетевых приложений
- Основы компьютерных сетей - История развития компьютерных сетей / Модель "TCP-IP" / IP-адрес
- Режим сетевого приложения - режим «клиент-сервер» / режим «браузер-сервер»
- Доступ к сетевым ресурсам на основе протокола HTTP - обзор сетевого API / доступ к URL / анализ данных в формате JSON
- Сетевое программирование Python - концепция сокета / модуля сокета / функции сокета / создание TCP-сервера / создание TCP-клиента / создание UDP-сервера / создание UDP-клиента / модуля SocketServer
- Электронная почта-протокол SMTP / протокол POP3 / протокол IMAP / модуль smtplib / модуль poplib / модуль imaplib SMS-сервис-вызов SMS-сервисный шлюз
- Примеры:
- 01.Многопоточное_скачивание.py
- 02.временной-сервер.py
- 03.временной-клиент.py
- 04.файловый-сервер.py
- 05.файловый-клиент.py
- 06.сервер_времени_tcp.py
- 07.клиент_времени_tcp.py
- 08.сервер_udp.py
- 09.клиент_udp.py
- 10.сервер_времени_tcp.py
- 11.чат-сервер.py
- 12.чат-клиент.py
- 13.почтовый-сервер.py
- 14.почтовый-клиент.py
День 15 - Обработка изображений и документов
- Чтение и запись файлов Excel
- Чтение и запись документов Word - обработка текстового содержимого / абзацев / заголовков и нижних колонтитулов / обработка стилей
- Используйте Pillow для обработки изображений, чтения и записи изображений / синтеза изображений / геометрического преобразования / преобразования цвета / эффекта фильтра.
- Примеры:
- 01.Excel.py
- 02.Excel.py
- 03.Word.py
- 04.Word.py
- 05.pillow.py
- 06.pdf.py
День16 ~ День20- Продвинутый язык Python
День 16 - Общая структура данных
- Общая структура данных / Очередь / Стек / Использование генеративного (производного) создания / Вложенный список / сортировка по куче / сборник полезных итераторов / распространенные алгоритмы / Алгоритм сортировки (выбор, всплытие и объединение) и алгоритм поиска (последовательность и деление пополам)
- Примеры:
- example02.py
- example01.py
- test_example01.py
- test_example02.py
День 17 - Расширенное использование функций
- Расширенное использование функций - Функция как "гражданин первого класса" / функции высшего порядка / лямбда-функции / области видимости и замыкания / декораторы / рекурсивная функция
- Примеры:
- 01.калькулятор.py
- 02.рекурсивная_функция.py
- 03.область_действия.py
День 18 - Расширенные объектно-ориентированные знания
- Расширенные объектно-ориентированные знания - «Три столпа» / Взаимосвязь между классами / Сборка мусора / Магические свойства и методы / Метаклассы / Принципы SOLID / Шаблон проектирования GoF
- Примеры:
- example01.py
- example02.py
- example03.py
- example04.py
День 19 - Магические методы, связанные с итераторами и генераторами
- Магические методы, связанные с итераторами и генераторами / два способа создания генераторов
- Примеры:
- example01.py
- example02.py
День 20 - Параллельное и асинхронное программирование
- Параллельное и асинхронное программирование - многопоточный / многопроцессорный / асинхронный ввод-вывод / асинхронный и ожидающий
- Примеры:
- example01.py
- example02.py
- example03.py
- example04.py
- example05.py
- example06.py
- example07.py
День 21 – 30 - Начало работы с веб-интерфейсом
День 21 - HTML
День 22 - CSS
День 23 - JavaScript
День 24 - jQuery
День 25 - Vue.js
День 26 - Bootstrap
День 27 - Работа с шаблонами веб-страниц
День 28 - Работа с HTTP-запросами и ответами
День 29 - Сессии и куки
День 30 - AJAX
День 31 ~ 35 - Развлечение с операционной системой Linux
- История разработки операционной системы и обзор Linux
- Основные команды Linux
- Утилиты в Linux
- Файловая система Linux
- Приложение редактора Vim
- Переменные среды и программирование оболочки
- Установка программного обеспечения и настройка сервиса
- Доступ к сети и управление
- Другой связанный контент
День 36 ~ 40 - Основы баз данных и продвинутый уровень
- Реляционная база данных MySQL
- Обзор реляционных баз данных
- Установка и использование MySQL
- Использование SQL
- Язык определения DDL-данных: создание / удаление / изменение
- DML-язык манипуляции данными - вставить / удалить / обновить / выбрать
- DCL-Data Control Language-grant / revoke
- связанная информация
- Теория Парадигмы - руководящая идеология для проектирования двумерных таблиц
- Целостность данных
- Согласованность данных
- Управляйте MySQL на Python
- Начало работы с базами данных NoSQL
- Обзор NoSQL
- Обзор Redis
- Обзор Mongo
День 41 ~ 55 - Практический Джанго
День 41 - Быстрый старт Django
- Механизм работы веб-приложения
- HTTP-запрос и ответ
- Обзор фреймворка Django
- Начни через 5 минут
День 42 - углубленная модель
- Конфигурация реляционной базы данных
- Используйте ORM для выполнения операций CRUD над моделью
- Управляйте использованием фона
- Лучшие практики для моделей Django
- Справочник по определению модели
День 43 - Статические ресурсы и запросы Ajax
- Загрузить статические ресурсы
- Обзор Ajax
- Реализуйте функцию голосования с помощью Ajax
День 44 - Cookie и сессия
- Внедрить отслеживание пользователей
- Связь между файлом cookie и сеансом
- Поддержка фреймворка Django для сеанса
- Операции чтения и записи файлов cookie в функциях просмотра
День 45 - отчеты и логи
- Измените заголовок ответа через HttpResponse
- Используйте StreamingHttpResponse для обработки больших файлов
- Используйте xlwt для создания отчетов Excel
- Используйте reportlab для создания отчетов в формате PDF
- Используйте ECharts для создания интерфейсных диаграмм
День 46 - Панель инструментов журнала и отладки
- Журнал конфигурации
- Настроить Django-Debug-Toolbar
- Оптимизировать код ORM
День 47 - Применение промежуточного программного обеспечения
- Что такое промежуточное ПО
- Промежуточное ПО, встроенное в структуру Django
- Пользовательское ПО промежуточного слоя и сценарии его применения
День 48 - Начало работы с интерфейсной и задней частью раздельной разработки
- Вернуть данные в формате JSON
- Визуализируйте страницу с помощью Vue.js
День 49 - Начало работы с архитектурой RESTful и DRF
День 50 - Архитектура RESTful и расширенный DRF
День 51 - Использовать кеш
- Первый закон оптимизации сайта
- Используйте Redis для предоставления услуги кеширования в проекте Django
- Чтение и запись кеша в функции просмотра
- Используйте декораторы для реализации кеширования страниц
- Предоставить услугу кеширования для интерфейса данных
День 52 - Доступ к сторонней платформе
- Управление формой загрузки файла и предварительный просмотр файла изображения
- Как сервер обрабатывает загруженные файлы
День 53- Асинхронные задачи и задачи по времени
- Второй закон оптимизации сайта
- Настроить службу очереди сообщений
- Используйте сельдерей в проекте для достижения асинхронизации задач
- Используйте сельдерей для реализации временных задач в проекте.
День 54 - модульное тестирование
День 55 - проект онлайн
- Модульное тестирование на Python
- Поддержка модульного тестирования фреймворком Django
- Используйте систему контроля версий
- Настроить и использовать uWSGI
- Разделение динамической и статической конфигурации и конфигурации Nginx
- Настроить HTTPS
- Настроить разрешение доменного имени
День 56 ~ 60 - Разработка интерфейса данных с помощью FastAPI
- Начните работу с FastAPI за 5 минут
- Запрос и ответ
- Доступ к реляционной базе данных
- Внедрение зависимости
- Промежуточное ПО
- Асинхронизация
- Развертывание виртуализации (Docker)
- Проект актуальных боевых действий: проект запроса нарушения техники
День 61 ~ 65- разработка краулера
День 61 - Веб-сканеры и сопутствующие инструменты
- Понятие веб-краулера и область его применения
- Обсуждение законности поисковых роботов
- Инструменты для разработки поисковых роботов
- Состав гусеницы
День 62 - Сбор и анализ данных
- Стандарты и трехсторонние библиотеки для сбора данных
- Три способа синтаксического анализа страницы: синтаксический анализ регулярных выражений / синтаксический анализ XPath / синтаксический анализ селектора CSS.
День 63 - хранить данные
- Как хранить большие объемы данных
- Реализовать кэширование данных
День 64 - одновременная загрузка
- Многопоточность и многопроцессорность
- Асинхронный ввод-вывод и сопрограммы
- Использование ключевых слов async и await
- Применение трехсторонней библиотеки aiohttp
День 65 - Анализируйте динамический контент.
- Обратный инжиниринг JavaScript
- Используйте Selenium для получения динамического контента