Рекомендации по оформлению кода
Когда мы пишем программы, важно не только то, что делает код, но и то, как он выглядит. Хорошо оформленный код легче читать, понимать, отлаживать и поддерживать. Для языка Python существует официальное руководство по стилю кода под названием PEP 8 (от англ. Python Enhancement Proposal – Предложение по улучшению Python).
PEP 8 представляет собой обширный документ, включающий множество рекомендаций по стилю и оформлению кода на Python. Однако, поскольку мы только начинаем изучение Python, мы рассмотрим только самые основы, такие как:
- Базовые правила отступов и форматирования.
- Советы по использованию пробелов и длин строк.
- Важность аккуратного комментирования и соблюдения регистра.
Отступы
В Python отступы играют ключевую роль в определении блоков кода, которые представляют собой группы логически связанных выполняемых как единое целое. Начало блока кода обозначается увеличением отступа, а конец – возвратом к предыдущему уровню отступа. Согласно PEP 8, для отступов следует использовать 4 пробела.
В примере ниже отступы определяют, какие действия выполняются, если условие истинно:
candy_count = 10
if candy_count > 0:
print("В вазе еще есть конфеты.")
print("Можете взять одну.")
candy_count = candy_count - 1
Здесь инструкции с функциями print() и уменьшением значения переменной candy_count находятся внутри блока кода, который выполняется только в том случае, если значение переменной candy_count больше 0. Отступ в 4 пробела четко показывает, какие инструкции принадлежат этому блоку.
При определении отступов крайне не рекомендуется использование символа табуляции, а также запрещается смешивать пробелы и табуляцию. Даже малейшее нарушение правил отступов приведёт к ошибке IndentationError (с англ. – ошибка отступа), поскольку Python строго следит за структурой кода именно благодаря отступам.
В VS Code при нажатии на клавишу Tab по умолчанию вставляется 4 пробела вместо символа табуляции, что избавляет от необходимости прописывать их вручную.
Длина строки
По возможности ограничивайте длину каждой строки до 79 символов. Длинные строки ухудшают восприятие и затрудняют чтение кода на небольших мониторах или устройствах с низким разрешением экрана.
Если выражение становится слишком длинными, Python предлагает несколько предпочтительных методов переноса.
Разбиение длинной строки с помощью скобок
Если выражение заключено в круглые, квадратные, или фигурные скобки, его можно переносить на любое количество строк без использования специального символа переноса. Python автоматически понимает, что выражение не закончено.
Например, если вы работаете с длинной строкой, то просто разбейте её на части и заключите их в скобки. Python объединит их автоматически:
citate = ("Когда потеряна истинная добродетель, является добродушие; "
" когда же потеряна справедливость, является приличие. Правила приличия "
"— это только подобие правды и начало всякого беспорядка.")
Для визуального выделения продолжения выражения рекомендуется использовать отступ в 4 пробела (стандартный отступ Python).
Разбиение длинной строки с помощью обратного слэша
Когда выражение нельзя заключить в скобки, используется символ обратного слэша (\), который указывает интерпретатору Python, что следующая строка является продолжением текущей.
Например, это позволит разбить выражение result = 136 + 839 - 892 * 2 - 1 следующим образом:
result = 136 + 839 \
- 892 * 2 \
- 1
Если вы случайно добавите пробел после символа \, это вызовет ошибку SyntaxError (с англ. – синтаксическая ошибка). Поэтому PEP 8 настоятельно рекомендует использовать скобки везде, где это возможно, и оставлять символ \ только для ситуаций, где скобки неприменимы.
Порядок инструкций
В Python каждая отдельная команда (инструкция) обычно располагается на новой строке:
print("Привет, мир!")
print("Как дела?")
При этом существует способ размещения нескольких инструкций на одной строке через точку с запятой:
print("Привет, мир!"); print("Как дела?")
Но такой стиль крайне не рекомендуется для разработки программ, так как ухудшает читаемость. Это может быть допустимо лишь в редких случаях, например, при работе в интерактивном режиме.
Кавычки
В Python для обозначения строк можно использовать как одинарные ('), так и двойные (") кавычки. С точки зрения интерпретатора, разницы между ними нет:
print("Привет, мир!")
print('Привет, мир!')
Оба варианта выведут на экран одно и то же сообщение:
Привет, мир!
Удобство использования разных видов кавычек проявляется, когда внутри строки необходимо использовать сами кавычки:
print('Сегодня мы сказали: "Привет, мир!"')
print("Он ответил: 'Все отлично!'")
PEP 8 не устанавливает строгих правил относительно выбора между одинарными и двойными кавычками. Главное – придерживаться одного стиля в рамках всего вашего проекта. Если вы начали использовать для строк двойные кавычки, то старайтесь использовать их и дальше.
Регистрозависимость
Python является регистрозависимым языком. Это означает, что строчные и прописные буквы в именах переменных, функций и других ключевых словах воспринимаются как разные символы.
Например, функция для вывода текста на экран называется print(). Если вы напишете Print() или PRINT(), Python не сможет распознать эту команду, что приведёт к ошибке NameError (с англ. – ошибка имени).
Итоги
- PEP 8 – официальное руководство по стилю кода на Python.
- Отступы в Python (рекомендовано 4 пробела) определяют блоки кода.
- Длина строки по возможности не должна превышать 79 символов.
- Каждая инструкция должна располагаться на новой строке.
- Для строк можно использовать как одинарные ', так и двойные " кавычки.
- Python – регистрозависимый язык, то есть различает строчные и заглавные буквы.
Задания для самопроверки
1. Что такое блок кода?
Группа инструкций, которые логически связаны и выполняются как единое целое.
2. Сколько пробелов рекомендуется использовать для отступа?
4 пробела.
3. Как следует размещать инструкции в коде?
Каждую инструкцию следует помещать на новую строку.
4. Какие виды кавычек можно использовать для строк в Python?
Для интерпретатора нет разницы между одинарными и двойными кавычками, поэтому этот вопрос остаётся на усмотрение программиста. Однако рекомендуется придерживаться одного стиля кавычек в проекте.
5. Что произойдёт, если написать PRINT() вместо print() для вывода сообщения на экран?
Это приведёт к ошибке NameError, так как Python – регистрозависимый язык, и слова, которые отличаются хотя бы одной заглавной или строчной буквой, считаются разными.
0 комментариев