PEP 8: понятный стиль Python на практических примерах
💻 Информатика · 8 класс
Отступы, имена, пробелы и различие между стилем кода и его правильностью.

Что регулирует PEP 8
PEP 8 — руководство по оформлению Python-кода. Оно помогает людям читать программы с привычными отступами, именами и расположением конструкций. Это не отдельный режим языка и не доказательство правильности алгоритма. В проекте могут действовать собственные согласованные правила; сам PEP рекомендует учитывать контекст и не ломать совместимость ради косметического единообразия.
Базовые ориентиры
- Обычно используются четыре пробела на уровень отступа; табуляцию и пробелы не смешивают.
- Имена функций и переменных пишут в snake_case: total_price. Имена классов обычно оформляют в CapWords, констант — UPPER_CASE.
- Вокруг присваивания и большинства бинарных операторов нужны пробелы: total = price + tax. После запятой ставят пробел, перед ней — нет.
- Импорты располагают в начале файла; обычные отдельные импорты удобно писать на разных строках.
- Базовая рекомендация — до 79 символов для кода и до 72 для комментариев и docstring; команда может согласовать другие границы.
Не добавляйте пробелы внутрь вызова без причины: print(value), а не print( value ). Такие мелочи улучшают вид, но не заменяют проверку результата.
Разобранный пример
Пусть функция должна возвращать среднее арифметическое непустой последовательности чисел. Осмысленное имя и ранняя проверка делают контракт понятным:
def mean_value(values):
if not values:
raise ValueError("Expected at least one number")
return sum(values) / len(values)
print(mean_value([2, 4, 6]))Результат — 4.0: сумма 12 делится на 3. Функция не пытается придумывать среднее пустого набора: для него явно выбрана ошибка. Это логическое решение, а не требование PEP 8. Четыре пробела показывают вложенность, а имя mean_value сообщает назначение.
Стиль, синтаксис и смысл
Запись x=1+2 выполняется, но хуже соответствует принятому оформлению, чем x = 1 + 2. Неправильная вложенность может уже изменить поведение или вызвать синтаксическую ошибку. Наконец, аккуратно оформленное return sum(values) / 2 неверно вычисляет среднее для списка из трёх элементов. Эти три проблемы нужно различать.
Упражнения
- Оформите по обычным правилам: total=sum([1,2,3]).
- Какой результат вернёт mean_value([10, 20])? Что произойдёт для пустого списка?
- Ученик исправил пробелы в return sum(values) / 2. Почему этого недостаточно?
Ответы
1. total = sum([1, 2, 3]). Добавлены пробелы вокруг присваивания и после запятых. 2. 15.0; для [] возникнет ValueError из явно записанной проверки. 3. Делитель должен быть числом элементов, а не постоянной 2. Оформление не исправляет формулу.
Как применять
Сначала убедитесь, что программа решает задачу на обычных и граничных входах. Затем приведите оформление к правилам проекта и перечитайте код глазами другого человека. Форматировщик автоматизирует часть работы, но не выбирает понятные имена и не проверяет смысл вычислений за автора.
Связанные материалы
- Основы программирования на Python
- Алгоритмы: основа программирования и не только
- Игра «Угадай число» на Python: первый проект с объяснением кода