09.01.2024
статья
Как правильно писать код? Correct writing #1: Python

Всем привет!

Сегодня я вам расскажу несколько правил написания красивого, хорошего и читаемого кода на языке программирования Python. Его я знаю уже год, поэтому опыт у меня есть. Приступим.
Красивый код


В начале расскажу про стиль написания кода, то есть как писать красивый код. Правила я в основном беру из официального стиля PEP 8, поэтому можете с ним ознакомиться самостоятельно.

  1. Пробелы
    Пробелы являются, как по мне, одним из самых важных правил написания. Если вы будете неправильно расставлять пробелы, то код будет нечитаемым.
# Правильно

a = b + c - x*y
function()
list = [1, 2, 3]
list2 = [
    "Здесь табуляция",
    "И здесь табуляция",
    "То есть 4 пробела"
]
n = m if m > 0 else 1

# Неправильно

a = b +c -x *y
function ()

# и т. д.
  1. Проверка булевого значения
    Зачем?!
# Правильно

variable = True
if variable:
    ...

# Также
a = 6

variable2 = a > 10
if not variable2:
    ...

# Неправильно

variable = True
if variable == True:
    ...

a = 6
if a > 10:
    variable2 = True
else:
    variable2 = False

# Ещё хуже

variable = True
if variable is True:
    ...

a = 6
if a == 11:
    variable2 = True
elif a == 10:
    variable2 = False
elif a == 9:
    variable2 = False
elif a == 8:
    variable2 = False
elif a == 7:
    variable2 = False

# и т. д.
  1. Также избегайте повторяющихся кусков кода. Лучше заменить их функцией или другими методами. Например, в предыдущей ситуации (Где написано "Ещё хуже") неопытный программист допустил серьёзную ошибку. Так делать нельзя. Вот варианты исправления (от лучшего к худшему)
# 1. Функция

def check(x: int):
   return x > 10

# 2. Как в предыдущем примере

# 3. Список

variable = True

if x in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
	variable = False

Читаемость
1) Комментарии
В них нужно писать не ЧТО делает программа, а ДЛЯ ЧЕГО она это делает

# Правильно

# Сдвигаем объект вправо
x = x + 1

# Неправильно

# Увеличиваем x
x = x + 1

2) Далее рассмотримнаименованиечего бы то ни было
Выделяют следующие стили наименования:

  • b (одна маленькая буква)
  • B (одна большая буква)
  • нижнийрегистр
  • нижний_регистр_с_нижними_подчёркиваниями
  • ВЕРХНИЙРЕГИСТР
  • ВЕРХНИЙ_РЕГИСТР_С_НИЖНИМИ_ПОДЧЁРКИВАНИЯМИ
  • СловаСЗаглавнойБуквы (или "CamelCase")
  • смешанныйРегистр (как CamelCase, но первая буква маленькая)

В общем-то можно использовать любой, но в питоне в основном используют CamelCase для названия классов, нижний_с_подчёркиваниями для функций и для перемен.


Я не разобрал ещё многие правила, которые, как я надеюсь, вы прочитаете в оригинале. Однако некоторые из них вы встречали в примерах, которые я вам давал. Например, указание типов данных для аргументов функций. Также я надеюсь, что вам понравился этот пост). Через некоторое время будет вторая часть по другому языку ヾ(≧▽≦*)o.

Всем пока!

Комментарии (1)
Спасибо! Моя ошибка была в том, что я писал вот так : a = 6 if a > 10: variable2 = True else: variable2 = False