print, input, f-строки, format и escape-последовательности

Тема дорожной карты · Python Programming

Эти примитивы — print, input, f-строки, str.format и escape-последовательности вроде \n, \t, \\ — встречаются почти везде, от учебных скриптов до CLI-утилит. Бери f-строки (f"{value:.2f}") для разовых сообщений, str.format — когда шаблон переиспользуется или приходит извне, старый %-стиль оставь legacy-коду. Типичные грабли: input() всегда возвращает str (приведение к int/float — на тебе), print сбрасывает буфер построчно в терминал, но буферизирует при редиректе (flush=True или python -u), а raw-строки (r"...") отключают escape — удобно для regex и путей Windows.

Как это работает

print, input, f-строки, format и escape-последовательности делается через встроенный open() для файлов (текстовый режим по умолчанию, бинарный — "rb"/"wb"), sys.stdin/stdout/stderr для потоков, sys.argv для аргументов командной строки. Всегда оборачивайте open() в with для гарантированного закрытия. pathlib.Path — современный кроссплатформенный способ составлять пути. Структурированные данные: json (stdlib) для JSON, csv (stdlib) для CSV, pickle для нативной сериализации (небезопасно через границу доверия — не unpickle-те недоверенный ввод).

Когда применять

Для конфигурации: переменные окружения + маленький .env (через python-dotenv или os.environ) лучше захардкоженных констант. Для обмена данными: JSON для веб-API, CSV для табличных spreadsheet-данных, Parquet (через pyarrow) для аналитики на масштабе. Для Python-only persistence (кеш, dev-тулы): pickle подходит; для всего, что пересекает процессы или языки, переходите на JSON или msgpack.

Типичные ошибки

Ловушки print, input, f-строки, format и escape-последовательности: забытое закрытие файлов (ресурсная утечка — всегда with open()); чтение огромных файлов в память (f.read() вместо построчной итерации); тихая порча кодировки (всегда передавайте encoding="utf-8" явно — default зависит от locale на Windows); unpickle недоверенного ввода (произвольное выполнение кода); захардкоженные обратные слеши Windows в путях (pathlib или прямые слеши — переносимо).

Связанные понятия

Полезные ресурсы