Учебник Python для начинающих
Популярный язык с простым синтаксисом — отличная точка входа в программирование. Разберём переменные, условия, циклы, функции и работу со структурами данных.
Курс «Python» состоит из 12 разделов и 78 уроков: Введение в Python, Управление потоком выполнения в Python, Функции в Python, Типы данных, ООП, Работа с файлами в Python, Исключения в Python, Полезные модули стандартной библиотеки, Асинхронность и параллелизм, Продвинутый Python, Параллелизм в Python и Для продвинутых. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Введение в Python
- Начинаем изучать Python
- Ключевые слова и идентификаторы в Python
- Инструкции, отступы и комментарии в Python
- Переменные, константы и литералы в Python
- Типы данных в Python
- Операторы в Python
- Числа и математические функции в Python
- Преобразование и приведение типов в Python
- Ввод, вывод и импорт в Python
- Пространство имен и область видимости в Python
2 Управление потоком выполнения в Python
- Условный оператор if...else в Python
- Цикл for в Python
- Цикл while в Python
- Инструкции break и continue в Python
break и continue в Python: прерывание цикла, пропуск итерации, поведение во вложенных циклах, else у цикла, частые ошибки.
- Инструкция pass в Python
Инструкция pass в Python: пустой оператор-заполнитель, применение в функциях, классах, условиях и циклах, отличие от continue.
3 Функции в Python
- Функции в Python
- Аргументы функции в Python
- Глобальные, локальные и нелокальные переменные в Python
- Анонимные функции в Python
- Ключевое слово global в Python
- Модули в Python
- Пакеты в Python
Пакеты Python: структура директорий, файл __init__.py, три способа импорта, относительные импорты, sys.path и частые ошибки.
4 Типы данных
5 ООП
6 Работа с файлами в Python
- Открытие файлов: функция open() и режимы
Функция open() в Python: режимы r, w, a, b, параметр encoding, чтение и запись файлов, почему важно закрывать файл.
- Чтение и запись текстовых файлов
Чтение и запись файлов в Python: методы read(), readline(), readlines(), write(), writelines(), построчный перебор, strip().
- Менеджер контекста with open()
Менеджер контекста with open() в Python: безопасное открытие файлов, автоматическое закрытие, два файла в одном with, частые ошибки.
- Работа с путями через pathlib
pathlib.Path в Python: создание и склейка путей, проверка существования, mkdir, read_text, write_text, glob — объектный способ работы с файловой системой.
- Открытие файлов: функция open() и режимы
7 Исключения в Python
- Блок try/except: перехват исключений
try/except в Python: синтаксис, перехват конкретных исключений, except as e, частые типы ошибок и почему нельзя использовать голый except.
- Иерархия исключений и несколько except
Иерархия исключений Python: дерево BaseException/Exception, несколько блоков except, порядок обработчиков, перехват группы через кортеж.
- Блоки else и finally
Блоки else и finally в Python: else выполняется при отсутствии ошибок, finally — всегда; полная структура try/except/else/finally с примерами.
- raise и собственные исключения
raise в Python: вызов исключений вручную, проброс с голым raise, создание собственных классов исключений с наследованием от Exception.
- Блок try/except: перехват исключений
8 Полезные модули стандартной библиотеки
- Регулярные выражения: модуль re
Модуль re в Python: регулярные выражения, search, findall, sub, группы захвата, основные метасимволы — практические примеры.
- Дата и время: модуль datetime
Модуль datetime в Python: date, datetime, timedelta, форматирование strftime, разбор strptime — работа с датами с примерами.
- Работа с JSON: модуль json
Модуль json в Python: dumps, loads, dump, load, ensure_ascii, indent, JSONDecodeError — сериализация и десериализация JSON с примерами.
- Регулярные выражения: модуль re
9 Асинхронность и параллелизм
- Синхронный и асинхронный код: зачем
В чём разница между синхронным и асинхронным кодом, что такое I/O-bound и CPU-bound задачи и когда асинхронность реально ускоряет программу.
- Корутины, async/await и событийный цикл
Корутины async/await в Python и событийный цикл asyncio: что такое await, как цикл переключает задачи и почему asyncio.run запускает всё это.
- Задачи: gather и create_task
Конкурентный запуск корутин в asyncio: asyncio.create_task и asyncio.gather, разница между последовательным await и параллельным ожиданием задач.
- Потоки, процессы, async и GIL
threading против multiprocessing против asyncio в Python: что выбрать для I/O-bound и CPU-bound, как GIL влияет на потоки и почему процессы обходят его.
- concurrent.futures: пулы исполнителей
Модуль concurrent.futures в Python: ThreadPoolExecutor и ProcessPoolExecutor, объект Future, метод map и единый интерфейс для потоков и процессов.
- Синхронный и асинхронный код: зачем
10 Продвинутый Python
- Декораторы вглубь
Декораторы Python вглубь: декораторы с аргументами, классы-декораторы, functools.wraps для сохранения метаданных и lru_cache для мемоизации.
- Генераторы, yield from и ленивость
Генераторы Python: yield и yield from, генераторные выражения и ленивые вычисления, которые экономят память и позволяют работать с бесконечными потоками.
- Контекстные менеджеры
Контекстные менеджеры Python: протокол __enter__ и __exit__, оператор with для управления ресурсами и contextlib.contextmanager для кратких менеджеров.
- Дескрипторы и property
Дескрипторы Python и property: методы __get__, __set__, __set_name__ для управляемого доступа к атрибутам и property как готовый удобный дескриптор.
- dataclasses и __slots__
dataclasses в Python: автогенерация __init__, __repr__, __eq__ и сравнения, плюс __slots__ для экономии памяти и фиксированного набора атрибутов.
- Аннотации типов, typing и метаклассы
Аннотации типов в Python: Optional, Generic и Protocol из typing для статической проверки и утиной типизации, плюс краткое введение в метаклассы.
- Декораторы вглубь
11 Параллелизм в Python
12 Для продвинутых
- Замыкания в Python
- Декораторы в Python
- Декораторы с аргументами в Python
- Классы-декораторы в Python
Декораторы-классы в Python: __call__, передача аргументов через __init__, functools.wraps, счётчик вызовов, сравнение с функциями-декораторами.
- Последовательности в Python
- Отличия кортежа от списка в Python
- Срезы в Python
- Последовательность Фибоначчи в Python
- Итераторы в Python
Итераторы Python: протокол __iter__/__next__, создание собственного итератора, отличие от итерируемого объекта, StopIteration, примеры.
- Итераторы и итерируемые объекты в Python
- Функция iter() в Python
- Генераторы в Python
- Генераторные выражения в Python
Генераторные выражения Python: синтаксис, ленивые вычисления, экономия памяти, условия, вложенные циклы, сравнение со списковыми включениями.
- Контекстный менеджер в Python