PEP 8 — документ, описывающий соглашение о том, как писать код на языке Python. PEP 8 создан на основе рекомендаций создателя языка Гвидо ван Россума. Ключевая идея Гвидо такова: код читается намного больше раз, чем пишется. Собственно, рекомендации о стиле написания кода направлены на то, чтобы улучшить читаемость кода и сделать его согласованным между большим числом проектов. В идеале, если весь код будет написан в едином стиле, то любой сможет легко его прочесть.
Форматирование
-
Используйте четыре пробела для отступов. Не делайте отступов в два пробела.
-
Пишите import каждого модуля в отдельной строке
-
Располагайте все import‘ы в верхней части кода перед любыми глобальными объявлениями.
-
Отделяйте блок import‘ов от кода пустой строкой.
-
Не используйте конструкцию from … import *
-
Скобки не отделяются пробелами с внутренней стороны. Между функцией и ее аргументами пробел не ставится.
spam(ham[1], {eggs: 2}) # Правильно
spam( ham[ 1 ], { eggs: 2 } ) # Неверно
-
Перед запятой, двоеточием пробел не ставится, после -— ставится.
if x == 4:
print(x, y)
x, y = y, x # Правильно
if x == 4 :
print(x , y)
x , y = y , x # Неверно
-
Всегда окружайте следующие бинарные операторы ровно одним символом пробела с каждой стороны:
-
присваивания (=, +=, -= и т. д.),
-
сравнения (==, <, >, !=, <>, <=, >=, in, not in, is, is not),
-
логические (and, or, not),
-
арифметические (+, -, *, /, //, \%, **).
-
-
Не располагайте несколько инструкций в одной строке. Разнесите их по разным строкам.
x = 3 # Правильно
func(10)
x = 3; func(10) # Неверно Не располагайте блок из нескольких инструкций на той же строке сразу после двоеточия (после if, while и т. д.)
Комментарии
-
Комментарии, противоречащие коду, хуже, чем их отсутствие.
-
Располагайте однострочные комментарии после кода в той же строке и отделяйте их от кода не менее чем двумя пробелами. Комментарии должны начинаться с # и одного пробела.
Имена
-
Не используйте символы `l’, `O’, и `I’ как имена переменных. В некоторых шрифтах они могут быть очень похожи на цифры.
-
Имена переменных и функций должны содержать только маленькие буквы. Слова разделяются символами подчёркивания. Примеры:
name, name_with_several_words_in_it
-
Имена констант должны содержать только заглавные буквы. Слова разделяются символами подчёркивания. Примеры:
NAME, NAME_WITH_SEVERAL_WORDS_IN_IT
-
Давайте переменным говорящие английские имена, не используйте транслит.
num_letters = int(input()) # Правильно
kolvo_bukv = int(input()) # Неверно
Функции
-
Разделяйте определения функций двумя пустыми строками. Отделяйте определения функций от основного кода двумя пустыми строками до и после.
-
Разделяйте тело функции на логические части одной пустой строкой.