Python-100 дней от новичка до мастера
Можно заплатить за курсы, на которых за неделю, месяц голопом по Европам - каша в голове, а можно планомерно
изучать самому спокойно все по очереди и вырасти до профессионала. План составлен,
будем действовать! Жопу Волю в кулак и вперед!!!
День 01 ~ 15 - Основы языка Python
День 01 - Знакомство с Python
- Введение в Python-История Python / Преимущества и недостатки Python / Области применения Python
- Настройка среды программирования - среда Windows / среда Linux / среда MacOS
- Запустить программу Python из терминала - Hello, world / print function / run program
- Используйте IDLE-Interactive Environment (REPL) / напишите несколько строк кода / запустите программу / выйдите из IDLE
- Комментарий - роль комментариев / однострочных комментариев / многострочных комментариев
День 02 - Элементы языка
- Программы и базы-инструкции / Машина фон Неймана / Двоичная и десятичная / Восьмеричная и шестнадцатеричная
- Переменные и типы - именование переменных / использование переменных / функция ввода / проверка типа / преобразования типа переменной
- Числа и строки: целые числа / числа с плавающей запятой / комплексные числа / строка / основные операции со строками / кодировка символов
- Операторы-математические операторы / Операторы присваивания / Операторы сравнения / Логические операторы / Операторы идентичности / Приоритет операторов
- Случай приложения - Преобразование Фаренгейта в Цельсий / Введите радиус круга для расчета длины окружности и площади / Введите год, чтобы определить, является ли это високосным годом
День 03 - Условные операторы
- Сценарии применения структуры ветвления-условие / отступ / блок кода / блок-схема
- простая инструкция if / if-else структура / if-elif-else структура / вложенная if
- Примеры - Проверка личности пользователя / Обмен английскими и метрическими единицами / Решение на случайное число, что делать, бросая кости / Преобразование стобальной системы оценок в американскую систему оценок / Подсчет результата сложной функции / Ввод длины трех сторон треугольника, вычисление периметра и площади
День 04- Циклическая структура
- Сценарии применения цикла for-in условие / отступ / while цикл структура цикла / оператор прерывания / оператор продолжения
- Примеры приложения-1 ~ 100 суммирование / оценка простых чисел / печать шаблонов треугольников
День 05 - Построение логики программы
- Классический кейс: количество нарциссов / сотня денег и сотня цыплят / игра в кости
- Практические вопросы: последовательность Фибоначчи / совершенные числа / простые числа
День 06 - Использование функций и модулей
- Роль функций - неприятный запах кода / инкапсуляция функциональных модулей с функциями
- Определение оператора определения функции / имени функции / списка параметров / оператора возврата / вызова пользовательской функции
- Вызов функции - встроенные функции Python / импорт модулей и функций
- Параметры функции - параметры по умолчанию / параметры переменных / параметры ключевого слова / параметры именованного ключевого слова
- Возвращаемое значение функции - нет возвращаемого значения / вернуть одно значение / вернуть несколько значений
- Проблемы области - локальная область / вложенная область / глобальная область / встроенная область / ключевые слова, связанные с областью действия
- Управление функциями с помощью модулей - концепция модулей / использование настраиваемых модулей для управления функциями / что происходит при конфликтах имен (один и тот же модуль и разные модули)
День 07 - 00. строки, список, кортеж, множество, словарь
- Использование строковых вычислений длины / индексации / нарезки / общих методов
- Базовое использование списка с определением списка / использование таблицы для доступа к элементу / добавление элемента / удаление элемента / изменение элемента / срез / обход цикла
- Общие операции со списком - объединение / копирование (копирование элементов и копирование массива) / длина / сортировка / поиск
- Генерация списка использования диапазона для создания списка чисел / генерации выражений
- Использование кортежей - определение кортежей / использование значений в кортежах / изменение переменных кортежей / кортежи и преобразование списков
- Базовое использование множества - разница между множеством и списком / создать / добавить элемент / удалить элемент / пусто
- Общие операции над множеством - пересечение / объединение / разность / симметричная разность / подмножество / надмножество
- Основное использование словаря - характеристики словаря / создать словарь / добавить элементы / удалить элементы / принять значения / пусто
- Общие операции со словарем - метод ключей () / метод значений () / метод items () / метод setdefault ()
- Базовые упражнения - эффект выделения / поиск самого большого элемента в списке / средний результат статистического теста / последовательность Фибоначчи / треугольник Ян Хуэй
День 08 - Основы объектно-ориентированного программирования
- Классы и объекты - что такое класс / что такое объект / другие связанные объектно-ориентированные концепции
- Определите базовую структуру класса / атрибуты и методы / конструктор / деструктор / метод str
- Использовать объекты - создавать объекты / отправлять сообщения объектам
- Четыре столпа объектно-ориентированной абстракции / инкапсуляции / наследования / полиморфизма
- Базовые упражнения - определение класса ученика / определение класса часов / определение класса графики / определение класса автомобиля
День 09 - Продвинутое объектно-ориентированное программирование
- Атрибуты класса атрибутов / атрибуты экземпляра / средства доступа к атрибутам / модификаторы атрибутов / средства удаления атрибутов / использование slots
- Методы в методе класса-экземпляра / методе класса / статическом методе
- Перегрузка оператора -__ add__ / sub / or / __ getitem__ / setitem / len / repr / gt / lt / le / ge / eq / ne / contains
- Отношения между классами (объектов) -ассоциация / наследование / зависимость
- Наследование и полиморфизм - что такое наследование / синтаксис наследования / вызов родительского метода / переписывание метода / определение типа / множественное наследование / алмазное наследование (алмазное наследование) и алгоритм C3
- Комплексная система расчетов по случаю и заработной плате / Автоматическая система скидок на книги / Индивидуальный счет
День 10 - Графический интерфейс и разработка игр.
- Используйте tkinter для разработки программ с графическим интерфейсом
- Используйте трехстороннюю библиотеку pygame для разработки игровых приложений
- Игра "Большой мяч ест маленький мяч"
День 11 - файлы и исключения
- Читать файл - читать весь файл / читать построчно / путь к файлу
- Записать перезапись файла / дополнительная запись / текстовый файл / двоичный файл
- Обработка исключений - важность механизма исключения / try-except блок кода / блок кода else / наконец блок кода / встроенный тип исключения / стек исключения / оператор повышения
- Сохранение данных - Обзор файла CSV / Применение модуля csv / Применение формата данных JSON / Применение модуля json
День 12 - Строки и регулярные выражения
- Расширенные манипуляции со строками - escape-символы / исходные строки / многострочные строки / в, а не в операторах / методах в начале is / методы соединения и разделения / методы, связанные с разделением / модуль pyperclip / инвариантные строки и переменные символы Использование String / StringIO
- Введение в регулярные выражения - роль регулярных выражений / метасимволов / экранирований / квантификаторов / группировка / утверждения нулевой ширины / ленивое сопоставление и ленивое сопоставление / использование модуля re для выполнения операций с регулярными выражениями (сопоставление, поиск, замена, захват)
- Используйте регулярные выражения-re module / compile function / group and groups method / match method / search method / findall and finditer method / sub and subn method / split method
- Случай приложения - используйте регулярные выражения для проверки входной строки
День 13 - Процессы и потоки
- Концепция процессов и потоков - что такое процесс / что такое поток / сценарии многопоточного приложения
- Использование функции ветвления процесса / модуля многопроцессорности / пула процессов / межпроцессного взаимодействия
- Используйте модуль потоковой передачи / модуль потоковой передачи / класс потока / класс блокировки / класс условия / пул потоков
День 14 - Введение в сетевое программирование и разработку сетевых приложений
- Основы компьютерных сетей - История развития компьютерных сетей / Модель "TCP-IP" / IP-адрес / Порт / Протокол /
- Другие связанные концепции
- Режим сетевого приложения - режим «клиент-сервер» / режим «браузер-сервер»
- Доступ к сетевым ресурсам на основе протокола HTTP - обзор сетевого API / доступ к URL / модуль запросов / анализ данных в формате JSON
- Сетевое программирование Python - концепция сокета / модуля сокета / функции сокета / создание TCP-сервера / создание TCP-клиента / создание UDP-сервера / создание UDP-клиента / модуля SocketServer
- Электронная почта-протокол SMTP / протокол POP3 / протокол IMAP / модуль smtplib / модуль poplib / модуль imaplib SMS-сервис-вызов SMS-сервисный шлюз
День 15 - Обработка изображений и документов
- Используйте Pillow для обработки изображений, чтения и записи изображений / синтеза изображений / геометрического преобразования / преобразования цвета / эффекта фильтра.
- Чтение и запись документов Word - обработка текстового содержимого / абзацев / заголовков и нижних колонтитулов / обработка стилей
- Чтение и запись файлов Excel - модуль xlrd / модуль xlwt
День16 ~ День20- Продвинутый язык Python
- Общая структура данных
- Расширенное использование функций - «первоклассные граждане» / функции высшего порядка / лямбда-функции / области видимости и замыкания / декораторы
- Расширенные объектно-ориентированные знания - «Три столпа» / Взаимосвязь между классами / Сборка мусора / Магические свойства и методы / Смешивание / Метаклассы / Принципы объектно-ориентированного дизайна / Шаблон проектирования GoF
- Магические методы, связанные с итераторами и генераторами / два способа создания генераторов /
- Параллельное и асинхронное программирование - многопоточный / многопроцессорный / асинхронный ввод-вывод / асинхронный и ожидающий
День 21–30 - Начало работы с веб-интерфейсом
- Используйте HTML-теги для переноса содержимого страницы
- Визуализируйте страницу с помощью CSS
- Обработка интерактивного поведения с помощью JavaScript
- Запись и улучшение jQuery
- Начало работы с Vue.js
- Использование элемента
- Использование Bootstrap
День 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 для получения динамического контента