Тема 4. Подпрограммы и работа с файлами (Procedures and Files)¶
Тема посвящена двум фундаментальным темам: организации программ через подпрограммы (функции) и работе с внешними данными — файлами, форматами, бинарными структурами. Параллельно рассматриваем те же идеи в Python и в Go.
Лекции¶
- Лекция 1. Подпрограммы: функции и область видимости — понятие подпрограммы,
def, аргументы (позиционные, именованные,*args/**kwargs, default), область видимости (LEGB,global,nonlocal),lambda, замыкания, аннотации типов, передача по ссылке/значению; в Go — функции, multiple return, variadic, functional options. - Лекция 2. Строки и рекурсия — методы строк, форматирование (f-strings,
format,%), кодировки, рекурсия (факториал, бинарный поиск, обход дерева), мемоизация, ограничения стека. - Лекция 3. Работа с файлами и форматами данных — открытие/закрытие (
with,defer), текстовые и бинарные файлы,pathlibvsos.path, обход каталогов; форматы CSV, JSON, YAML, TOML, INI;pickleи его опасности. - Лекция 4. Бинарные файлы и произвольный доступ —
seek/tell,structв Python иencoding/binaryв Go, чтение заголовка WAV,mmapдля больших файлов.
Лабораторные работы¶
- Написать модуль с набором функций и рекурсивных алгоритмов (факториал, Фибоначчи с мемоизацией, бинарный поиск, обход дерева каталогов); покрыть
pytest/go test. - Реализовать CRUD на
configparser/tomllib/viperдля управления настройками приложения. - Прочитать заголовок WAV-файла (через
structилиencoding/binary) и вывести метаданные.