Как сделать отступ в питоне

Обновлено: 06.07.2024

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

"Строка Python."

'Строка Python.'

Это позволяет использовать внутренние кавычки в строках. "Язык программирования 'Python' ". Рассмотрим операции со строками.

1. Функция print() в Python .

Встроенная функция print() выводит свой аргумент в строке текста.

>>> print( 'Hello world!' )
Hello world!
>>> print( "Hello world!" )
Hello world
>>> print( "Hello", 'world!' )
Hello world

В каждом случае аргументом является строка Hello world! Кроме того, print() не выводит кавычки, в которые заключена строка. Строка может быть заключена как в одинарные так и в двойные кавычки. В третьем случае, функция print() , получила список аргументов "Hello" и 'world', разделенных запятыми. Каждый аргумент выводится, отделяясь от следующего пробелом. В итоге во всех трех случаях получается один и тот же результат.

2. Табуляция и разрыв строк в Python.

В программировании термином пропуск ( whitespace ) называются такие непечатаемые символы, как пробелы, табуляции и символы конца строки. Пропуски структурируют текст, чтобы пользователю было удобнее читать его.

В таблице приведены наиболее часто встречаемые комбинации символов.

Для добавления в текст табуляции используется комбинация символов \t . Разрыв строки добавляется с помощью комбинации символов \n .

>>> print("Python")
Python
>>> print(" \t Python")
Python
>>> print("Языки программирования: \n Python \n Java \n C")
Языки программирования:
Python
Java
C

>>> print("Языки программирования: \n\t Python \n\t Java \n\t C")
Языки программирования:
Python
Java
C

3. Изменение регистра символов в строках в Python.

Одной из частых операций, выполняемых со строками - это изменение регистра символов. Например, у нас есть переменная name, в которой сохранена строка "Hello world!". Для преобразования символов к верхнему или нижнему регистру существует несколько методов.

>>> name = "Hello world!"
>>> print(name. title() )
Hello World!
>>> print(name. upper() )
HELLO WORLD!
>>> print(name. lower() )
hello world!

В первом случае за именем переменной в команде print() следует вызов метода title() . Метод - это действие, которое Python выполняет с данными. Точка после name приказывает Python применить метод title() к переменной name. За именем метода всегда следует пара круглых скобок () . Методам для выполнения их работы часто требуется дополнительные данные, и они указываются в скобках. В данный момент дополнительная информация не нужна, поэтому в скобках ничего нет. Метод title() преобразует первый символ каждого слова к верхнему регистру, остальные символы выводятся, как и были. Во втором случае используется метод upper() , в котором все символы преобразовываются к верхнему регистру. В третьем случае в методе lower() идет преобразование всех символов к нижнему регистру.

Метод lower() очень часто используется для хранения данных. Редко при вводе данных все пользователи вводят данные с точным соблюдением регистра. После ввода все данные преобразуются к нижнему регистру и уже затем выводится информация с использованием регистра, наиболее подходящего.

4. F-строки. Форматирование строк в Python.

Часто требуется использовать значения переменных внутри строки. Предположим, что у вас имя и фамилия хранятся в разных переменных и вы хотите их объединить для вывода полного имени.

Для того чтобы вставить значение переменных в строку, нужно поставить букву f непосредственно перед открывающейся кавычкой. Заключить имя или имена переменных в фигурные скобки <> .

Python заменить каждую переменную на ее значение при выводе строки.

>>> name = "Александр"
>>> surname = "Пушкин"
>>> full_name = f" "
>>> print(full_name)
Александр Пушкин

Буква f происходит от слова format, потому что Python форматирует строку, заменяя имена переменных в фигурных скобках на их значения. В итоге выводится строка имя и фамилия.

>>> name = "александр"
>>> surname = "пушкин"
>>> full_name = f" "
>>> print( f" Русский поэт ! " )
Русский поэт Александр Пушкин!
>>> message = f" Мой любимый поэт "
>>> print(message)
Мой любимый поэт Александр Пушкин

Важно: F-строки впервые появились в Python3.6. Если вы используете более раннею версию, используйте метод format. Что бы использовать метод format(), перечислите переменные в круглых скобках после format.

full_name = "<> <>".format(name, surname)

5. Удаление пропусков в Python.

Для пользователя две строки 'Python' и ' Python ' внешне сильно не отличаются, но для программы это совершенно разные строки. Python видит дополнительные пропуски и считает их важными. Обращайте внимание на лишние пропуски, потому что часто в программах приходится сравнивать строки, чтобы проверить совпадения. Один из примеров - это проверка имен пользователей при регистрации или авторизации на сайте. Python позволяет удалять лишние пропуски, введенные пользователем.

Python может искать лишние пропуски у правого и левого края строки, так же может удалить с обоих концов строки.

>>> language. rstrip ()
' python'
>>> language. lstrip ()
'python '
>>> language. strip ()
'python'
>>> language
' python '

Важно: Python не удаляет навсегда эти пропуски в переменной. Чтобы исключить пропуск из строки, следует ее перезаписать.

>>> language = ' python '
>>> language
' python '
>>> language = language. strip ()
>>> language
'python'

Сначала пропуски удаляются методом strip() и потом записываются в исходную переменную.

6. Комментарии в Python.

Основная задача комментария - объяснить, как работает ваш код и что он делает. В процессе работы над проектом вы понимаете, как работают все компоненты, но если вы вернетесь к этому проекту спустя месяц или годы, то придется заново разбираться. Так же при совместной разработке с другими программистами без комментариев вам не обойтись. Рекомендуется сразу писать комментарии в процессе разработки. Удалить комментарии намного проще, чем возвращаться и добавлять комментарии в программу.

В этой статье мы рассмотрим, какие типы отступов существуют, и примеры того, как эффективно добавить их в Python с помощью ljust (), center (), rjust (), zfill() и format().

Вступление

Заполнение строк относится к добавлению, как правило, неинформативных символов в строку на одном или обоих ее концах. Чаще всего это делается для форматирования и выравнивания выходных данных, но может иметь полезные практические применения.

Частым случаем использования заполняющих строк является вывод табличной информации табличным способом. Вы можете сделать это различными способами, включая использование панд для преобразования ваших данных в реальную таблицу. Таким образом, Python будет обрабатывать форматирование вывода самостоятельно.

В этой статье мы рассмотрим, как заполнять строки в Python.

Скажем, у нас есть эти три списка:

Мы можем сформировать их в строку, используя функцию join() :

Это дало бы нам довольно неопрятный результат:

Чтобы бороться с этим, мы могли бы написать for /| while циклы и добавлять пробелы к строкам, пока они не достигнут определенной длины, и убедиться, что все данные выровнены правильно для легкого визуального контроля. Или мы могли бы использовать встроенные функции, которые могут достичь той же цели.

В этой статье мы рассмотрим следующие функции: just() , center() , just() , fill() и format() . Любая из этих функций может быть использована для добавления определенного количества символов в любой конец строки, включая пробелы.

Типы прокладок

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

Левая Прокладка

Добавление левого отступа к строке означает добавление заданного символа в начале строки, чтобы сделать ее заданной длины. Левое заполнение, помимо простого форматирования и выравнивания, может быть действительно полезно при именовании файлов, которые начинаются с числа, сгенерированного в последовательности.

Например, вам нужно назвать 11 файлов, и каждый из них начинается с числа от 1 до 11. Если вы просто добавите номер в начале файла, большинство операционных систем отсортируют файлы в следующем порядке: 1 , 10 , 11 , 2 , и так далее.

Это происходит, конечно, из-за правил лексикографической сортировки, но вы можете избежать этих ситуаций, называя файлы одним или несколькими ведущими нулями, в зависимости от того, сколько файлов вы ожидаете, т. е.: 01 , 02 , 03 …

Это может быть достигнуто путем эффективного заполнения чисел слева соответствующим количеством нулей, которое сохраняет их первоначальное значение.

Это дает эффект выравнивания строк по левому краю.

Центральная Прокладка

Это означает, что данный символ добавляется в равной мере к обеим сторонам строки до тех пор, пока новая строка не достигнет заданной длины. Используя это эффективно центрирует строку в заданной длине:

Правая Прокладка

Правое заполнение аналогично левому заполнению – данный символ добавляется в конец строки до тех пор, пока строка не достигнет определенной длины.

Функции Python Для Заполнения Строк

Python предлагает множество функций для форматирования и обработки строк, их использование зависит от варианта использования и личных предпочтений разработчика. Большинство функций, которые мы обсудим, имеют дело с текстом justification , который, по сути, добавляет заполнение к одной стороне строки. Например, чтобы строка была выровнена по левому краю , нам нужно добавить отступ в конец (правую сторону) строки.

Примечание: Во всех функциях, ожидающих параметра width или len , в случае, если исходная строка длиннее указанной width или len , вся строка будет сохранена без изменений. Это может привести к нежелательному эффекту, когда длинные строки разрушают форматирование, поэтому при выборе значения width убедитесь, что вы учитываете самую длинную строку или верхнюю границу длины.

просто()

Функция ljust() выравнивает строку влево, добавляя правое заполнение.

Функция ljust() принимает два параметра: width и fillchar . Параметр width является обязательным и определяет длину строки после добавления отступа, в то время как второй параметр является необязательным и представляет символ, добавленный в исходную строку.

По умолчанию используется символ пробел , то есть '' . Это особенно хороший вариант для использования при печати табличных данных, как в нашем примере в начале:

Что дает нам выход:

центр()

Функция center() выравнивает строку по центру заданной ширины , добавляя отступы поровну с обеих сторон. Параметры те же, что и у функции just () , обязательный width и необязательный fillchar параметр:

rjust()

Аналогично предыдущим двум функциям, just() выравнивает строку вправо, добавляя отступ слева (начало) строки.

Опять же, параметры являются обязательными width и необязательными fillchar . Как мы уже упоминали ранее, эта функция очень полезна при именовании файлов, которые начинаются с чисел, из-за более интуитивной сортировки:

Запуск этого кода даст нам:

zfill()

Функция zfill() работает очень похоже на использование just() с нулем в качестве указанного символа. Он оставил заполнение данной строки нулями до тех пор, пока строка не достигнет заданной длины.

Разница лишь в том, что если наша строка начинается со знака плюс( + ) или минус ( - ), то заполнение начнется после этого знака:

Это делается для того, чтобы сохранить исходное значение числа в том случае, если строка была числом. Запуск этого кода даст нам:

формат()

Функция format() является самой продвинутой в списке. Эта единственная функция может быть использована для левого, правого и даже центрального заполнения. Он также используется для другого форматирования , но мы только взглянем на функциональность заполнения, которую он предоставляет.

Он возвращает строку после форматирования указанных значений и помещения их в строковые заполнители, которые определяются <> .

Заполнители могут быть идентифицированы либо именованными индексами, либо нумерованными индексами, либо даже пустыми фигурными скобками. Быстрый пример того, как выглядят эти заполнители, прежде чем мы увидим, как мы можем использовать эту функцию для добавления отступов:

Что дало бы нам:

Эти заполнители допускают различные варианты форматирования. Давайте посмотрим, как мы можем достичь различных типов заполнения строк с помощью этих параметров:

Левое заполнение: Используйте > внутри заполнителя и числа, чтобы указать желаемую ширину, чтобы выровнять строку по правому краю (добавить символы в начале):

Разбивочная прокладка: Аналогично, мы можем использовать ^ для разбивочной прокладки/выравнивания:

Правое заполнение: Используйте внутри заполнителей для выравнивания строки по левому краю:

Вы также можете добавлять символы, отличные от пробелов, добавляя указанные символы перед > , ^ или символ:

Подробнее о различных возможностях функции format() вы можете прочитать в нашем Руководстве по форматированию строк с помощью Python .

Вывод

Добавление отступов к строкам в Python-это относительно простой процесс, который может заметно повысить читабельность ваших выходных данных, особенно если данные, которые у вас есть, могут быть прочитаны в виде таблицы.

В этой статье мы рассмотрели функции ljust () , rjust () , center () , zfill() и format() как встроенные подходы к заполнению строк в Python.

Python, подобно живому организму, развивается и приобретает новые возможности благодаря многочисленному международному сообществу согласно определенным правилам и стандартам PEP. PEP – Python Enhancement Proposal, предложения по развитию Python. Эти стандарты позволяют создавать унифицированную проектную документацию для новых утвержденных возможностей языка Python. Самый известный PEP имеет восьмой порядковый номер. PEP8 содержит перечень принципов написания красивого и лаконичного программного кода на языке Python.

Для чего придуман PEP8?

(Читаемость имеет значение)

PEP8 существует, чтобы улучшить “читабельность„ кода. Но почему этот параметр имеет настолько большую важность? Почему написание хорошо читаемого кода – один из фундаментальных принципов языка Python?

Если вы начинающий программист Python, вам может быть тяжело запомнить, что делает определенная часть кода по прошествии нескольких дней после ее написания. Однако, если вы будете следовать рекомендациям PEP8, можете быть уверены, ваш код будет в полном порядке. Вы будете знать, что добавили достаточно пробелов, в соответствии с разделением на логические блоки кода.

Соблюдение PEP8 особенно важно, если вы в поисках вакансии python-разработчика. Чистый и читаемый код показывает высокий профессионализм. Он говорит работодателю о вашем понимании правильного структурирования программного кода.

Если же вы более опытный Python-программист, тогда с помощи PEP8 можно с легкостью объединиться с другими программистами для работы над одной задачей. Хорошо читаемый код имеет в данном случае особую критичность. Люди, ранее не видевшие вас, но знакомые с вашим кодом, будут читать, понимая идею, которую вы хотели донести.

Негласная договоренность об именах

(Явное лучше, чем неявное)

При написании Python кода, необходимо придумывать имена многим вещам: переменным, функциям, классам, пакетам и так далее. Выбор разумных имен сэкономит вам время и силы в последствии. По названию нужно суметь понять, что представляет собой определенная переменная, функция или класс. Вы также избежите использования некорректных имен, которые могут привести к критическим ошибкам, плохо поддающимся отладке.

Не использовать одиночные буквы l, O, или I в качестве каких‑либо имен из‑за риска спутать их с 1 и 0, в зависимости от шрифта.

Стили именования

В таблице ниже описаны некоторые из распространенных стилей именования в коде Python и указаны случаи, когда их следует использовать:

Помимо выбора правильных стилей именования в вашем коде, вы также должны тщательно выбирать сами имена. Ниже приведены несколько советов, как сделать это максимально эффективно.

Правильный выбор имени

Выбор имен для переменных, функций, классов и т. д. может оказаться неожиданно сложной задачей. При написании кода вы должны хорошо продумать свой выбор имен, так как это сделает ваш код более читаемым. Лучший способ назвать ваши объекты в Python — использовать описательные имена, чтобы было понятно, что представляет собой объект.

При именовании переменных у вас может возникнуть соблазн выбрать простые, состоящие из одной буквы имена в нижнем регистре, например x. Но если вы не используете x в качестве аргумента математической функции, непонятно, что представляет собой этот самый x. Представьте, что вы храните имя человека в виде строки и хотите использовать срез строки, чтобы по‑другому отформатировать его имя.

Вы можете получить что‑то вроде этого:

Это будет работать, но вам нужно будет отслеживать, что представляют собой x, y и z. Это также может сбивать с толку соавторов. Более правильный выбор имен будет примерно таким:

Точно так же, чтобы уменьшить количество набираемых вами букв, может возникнуть соблазн использовать сокращения при выборе имен. В приведенном ниже примере была определена функция db, которая принимает единственный аргумент x и удваивает его:

На первый взгляд, это может показаться очевидным выбором — это ведь отличное сокращением для double! Но представьте, что вернетесь к этому коду через несколько дней. Скорее всего, вы забудете, какой смысл вкладывали в эту функцию и вполне можете подумать, что это сокращение от database.

Следующий пример еще более понятен:

Та же самая философия относится и ко всем прочим типам данных и объектов в Python. Всегда пробуйте использовать наиболее емкие и лаконичные названия.

Расположение кода

(Красивое лучше, чем уродливое)

То, как Вы расположите ваш код, имеет огромную роль в повышении его читаемость. В этом разделе вы узнаете, как добавить вертикальные пробелы для улучшения восприятия вашего кода. Вы также узнаете, как правильно пользоваться ограничением в 79 символов на строку, рекомендованным в PEP8.

Монолитный код может быть труден для восприятия. Точно так же, слишком много пустых строк в коде делает его очень разреженным, что заставит читателя пролистывать его чаще, чем необходимо. Ниже приведены три основных правила использования вертикальных пробелов.

Окружите функции и классы верхнего уровня двумя пустыми строками. Функции и классы верхнего уровня должны быть самодостаточны и обрабатывать отдельные функции. Имеет смысл разместить вокруг них дополнительное вертикальное пространство, чтобы было ясно, что они разделены:

Обособьте определения методов внутри классов одной пустой строкой. Внутри класса все функции связаны друг с другом. Рекомендуется оставлять между ними только одну строку:

Используйте пустые строки внутри функций, чтобы четко показать шаги. Иногда сложная функция должна выполнить несколько шагов перед оператором return. Чтобы помочь читателю понять логику внутри функции, может быть полезно оставлять пустую строку между каждым шагом.

В приведенном ниже примере есть функция для вычисления дисперсии списка. Это двухэтапная задача, поэтому логично будет отделить каждый шаг, оставив между ними пустую строку. Перед оператором возврата также есть пустая строка. Это помогает читателю ясно увидеть, что возвращается:

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

Максимальная длина строки и разрыв строки

PEP8 предлагает ограничить длину строки 79 символами. Это рекомендуется делать, чтобы вы имели возможность открывать несколько файлов рядом друг с другом, а также избегать переноса строк.

Конечно, не всегда возможно обеспечить длины всех операторов до 79 символов. PEP8 также описывает способы, позволяющие операторам занимать несколько строк. Python предполагает наличие продолжения строки, если код заключен в круглые, квадратные или фигурные скобки:

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

Важно: если разрыв строки должен произойти вокруг бинарных операторов, таких как сложение или, например, умножение, он должен находиться перед оператором.

Отступы

(Должен быть один очевидный способ сделать это)

Отступы или же пробелы в начале строки — крайне важная часть в синтаксисе Python. Как группируются операторы друг с другом операторы, в Python определяют именно уровни строк.

Отступ перед оператором вывода дает сигнал Python об условном выполнении только в случае, когда оператор if возвращает True. Ровно такой же отступ покажет Python, какой именно код выполнять при вызове функции или какой код имеет отношение к данному классу. Ключевых правил расстановки отступов всего два и они ниже:

Используйте четыре последовательных пробела для отступа;

Отдавайте предпочтение пробелам, а не табуляции.

Пробелы против Табуляции

Вы можете настроить ваш редактор кода на вставку четырех пробелов, когда вы нажимаете клавишу Tab. Также необходимо иметь в виду, что в Python 3 запрещено смешение пробелов и табуляции. Изначально выберите, как именно вы будете выставлять отступы и придерживайтесь этого выбора. Иначе, вместо выполнения кода, вы получите ошибку.

Комментарии

(Если реализацию трудно объяснить, это была плохая идея)

Используйте комментарии для документирования кода в том виде, в каком он написан. Это важно для ваших коллег и вашего понимания своего кода в будущем. Вот три важных ключевых момента, которые необходимо учитывать, при добавлении комментариев к коду:

Используйте длину комментариев при документации не более 72 символов;

Не используйте сокращения, начинайте предложения с заглавной буквы;

Не забывайте актуализировать комментарии, при изменении кода.

Пример простейшего комментария:

Теория и практические задачи для закрепления на Python для начинающих. Быстрая проверка, подсказки к ошибкам на русском языке. От простого к сложному. Работает без установки в любом современном браузере.

Пробелы в выражениях и утверждениях

(Разреженное лучше, чем плотное)

Полезность пробелов в выражениях и операторах трудно переоценить. Если пробелов недостаточно, код может быть трудночитаемым, так как все сгруппированы вместе. Если пробелов слишком много, может быть сложно визуально объединить строки кода в, логически связанные, блоки.

Отступ или ведущий пробел чрезвычайно важны в Python. Уровень отступа строк кода в Python определяет, как операторы группируются вместе.

Рассмотрим следующий пример:

Оператор print с отступом позволяет Python знать, что его следует выполнять только в том случае, если оператор if возвращает True. Тот же отступ применяется в Python, чтобы понять какой код выполнять при вызове функции или какой код принадлежит данному классу.

Ключевыми правилами отступления, изложенными в PEP 8, являются:

- Используйте 4 последовательных пробела для обозначения отступа.

- Предпочтительнее использовать пробелы, чем табуляцию.

Табуляция VS Пробелы

Как упоминалось выше, вы должны использовать пробелы вместо табуляции при отступе кода. Вы можете настроить параметры в текстовом редакторе так, чтобы при нажатии клавиши Tab выводилось 4 пробела вместо символа табуляции.

Если вы используете Python 2 и использовали комбинацию табуляции и пробелов для отступа в своем коде, вы не увидите ошибок при попытке его запустить. Чтобы помочь вам проверить согласованность, вы можете добавить флаг -t при запуске кода Python 2 из командной строки. Интерпретатор выдаст предупреждения, если вы не согласны с использованием табуляции и пробелов:

Результат: Непоследовательное использование табуляции и пробелов в отступе

Если вместо этого вы используете флаг -tt, интерпретатор выдаст ошибки вместо предупреждений, и ваш код не запустится. Преимущество использования этого метода заключается в том, что интерпретатор сообщает вам, где есть несоответствия:

Ошибка табуляции: Непоследовательное использование табуляции и пробелов в отступе

Python 3 не позволяет смешивать символы табуляции и пробелы. Поэтому, если вы используете Python 3, эти ошибки выдаются автоматически:

Ошибка табуляции: Непоследовательное использование табуляции и пробелов в отступе

Вы можете написать код Python с помощью табуляции или пробелов, обозначающих отступ. Однако если вы используете Python 3, вы должны соответствовать своему выбору. В противном случае ваш код не будет работать. PEP 8 рекомендует всегда использовать 4 последовательных пробела для обозначения отступа.

Отступ после переноса строки
Когда вы используете продолжения строк, чтобы длина строк не превышала 79 символов, полезно использовать отступы для улучшения читабельности. Это позволяет читателю различать две строки кода и одну строку кода, которая занимает две строки. Есть два стиля отступов, которые вы можете использовать.

Первый из них это выравнивание блока с отступом по открывающему разделителю:

Иногда вы можете обнаружить, что для выравнивания с начальным разделителем требуется всего 4 пробела. Это часто происходит в том случае, если операторы, занимающие несколько строк, такие как if, пробел и открывающая скобка, составляют 4 символа. В этом случае может быть трудно определить, где начинается блок вложенного кода внутри оператора if:

В этом случае PEP 8 предоставляет две альтернативы для улучшения читаемости:

1. Добавьте комментарий после окончательного условия. Из-за подсветки синтаксиса в большинстве редакторов это отделяет условия от вложенного кода:

2. Добавьте дополнительный отступ на продолжение строки:

Альтернативный стиль отступа после переноса строки - висячий отступ. Это типографский термин, означающий, что каждая строка, кроме первой в абзаце или утверждении, имеет отступ. Вы можете использовать висячий отступ для визуального представления продолжения строки кода. Вот пример:

Примечание. Если вы используете висячий отступ, в первой строке не должно быть никаких аргументов. Следующий пример не соответствует PEP 8:ы

При использовании висящего отступа добавьте дополнительный отступ, чтобы отличить продолжение строки от кода, содержащегося внутри функции. Следующий пример трудно читать, потому что код внутри функции находится на том же уровне отступа, что и продолжение строк:

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

Когда вы пишете код, совместимый с PEP 8, ограничение в 79 символов заставляет вас добавлять разрывы строк в ваш код. Чтобы улучшить читаемость, вы должны сделать отступ для продолжения, чтобы показать, что это продолжение. Есть два способа сделать это. Во-первых, выровнять блок с отступом по открывающему разделителю. Второе - использовать висячий отступ. Вы можете выбрать любой из этих методов отступа в дальнейшей работе.

Где ставить закрывающую скобку

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

1. Совместите закрывающую скобку с первым непробельным символом предыдущей строки:

2. Выровняйте закрывающую фигурную скобку с первым символом строки, которая начинает конструкцию:

Вы можете выбрать какой угодно вариант. Однако, как всегда, последовательность является ключевым фактором, поэтому старайтесь придерживаться одного из вышеуказанных методов.

Вы должны использовать комментарии для документирования кода, как он написан. Важно документировать свой код, чтобы вы и все люди, кто работает над проектом, могли его понять. Когда вы или кто-то другой читает комментарий, он должен иметь возможность легко понять код, к которому относится комментарий, и то, как он вписывается в остальную часть вашего кода.

Вот несколько ключевых моментов, которые следует помнить при добавлении комментариев в код:

1. Ограничьте длину строки комментариев и строк документации до 72 символов.

2. Используйте предложения, начинающиеся с заглавной буквы.

3. Не забудьте обновить комментарии, если вы измените свой код.

Блок комментариев

Используйте блочные комментарии для документирования небольшого фрагмента кода. Они полезны, когда вам нужно написать несколько строк кода для выполнения одного действия, такого как импорт данных из файла или обновление записи базы данных. Они важны, поскольку помогают другим понять назначение и функциональность данного блока кода.

PEP 8 предусматривает следующие правила для написания комментариев к блоку:

1. Отступ блока комментариев должен быть на том же уровне, что и код, который они описывают.

Вот блочный комментарий, объясняющий функцию цикла for. Обратите внимание, что предложение переносится на новую строку, чтобы сохранить ограничение в 79 символов:

Иногда, если код очень технический, тогда необходимо использовать более одного абзаца в комментарии блока:

Если вы когда-либо будете сомневаться в том, какой тип комментария вам подходит, тогда блочные комментарии часто являются подходящим способом. Используйте их как можно больше в своем коде, но не забудьте обновить их, если вы внесли изменения в свой код!

Однострочные комментарии

Однострочные комментарии объясняют одно утверждение в куске кода. Они полезны, чтобы напомнить вам или объяснить другим, почему необходима определенная строка кода. Вот что говорит о них PEP 8:

1. Используйте однострочные комментарии экономно.

2. Напишите однострочный комментарии в той же строке, что и утверждение, к которому они относятся.

3. Отделяйте однострочные комментарии двумя или более пробелами от оператора.

5. Не используйте их, чтобы объяснить очевидное.

Ниже приведен пример однострочного комментария:

В некоторых случаях использование комментария необходимо, но вместо этого лучше использовать соглашение об именах. Например:

Здесь комментарий дает дополнительную информацию. Однако использование x в качестве имени переменной для ФИО студента является плохой практикой. Такой комментарий не нужен, если вы переименуете переменную:

Наконец, однострочные комментарии, подобные этим, являются плохой практикой, так как они содержат очевидный и беспорядочный код:

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

Докуменирующие строки

Докуменирующие строки - это строки, заключенные в двойные (" " ") или одинарные (' ' ') кавычки, которые ставятся в первой строке любой функции, класса, метода или модуля. Вы можете использовать их для объяснения и документирования конкретного блока кода. Существует целый PEP, PEP 257, который охватывает документирующие строки.

Наиболее важные правила, применяемые к этим видам строк:

1. Окружите документирующие строки тремя двойными кавычками с каждой стороны: """Это строка документации""".

2. Напишите их для всех общедоступных модулей, функций, классов и методов.

3. Поместите """, который завершает многострочную строку документации, на закрывающуюся строку:

Для однострочных строк документации, поставьте """ на той же строке:

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

Все права принадлежат авторам статьи (команде Real Python).

Мною лишь переведена и адаптирована статья. Не тяну на звание отличного переводчика, но стараюсь сделать все возможное для хорошего перевода.

Спасибо за внимание!

P.S. Прощу прощения за задержку, выдалась тяжелая сессия :)
P.S.S. Приветствуется адекватная критика и пожелания на следующий перевод.


Программирование на python

233 поста 7.8K подписчика

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!

Приветствуется:

• уважение к читателям и авторам

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт

Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

Похвальные усилия по переводу, но зачем? Разработчик, не владеющий английским на уровне "читать туториалы", это что вообще? Все на английском практически, все равно его учить.

Мне это чем то напоминает "культуру общения" :) На самом деле начинание весьма похвальное ибо иногда смотришь в чужой код и думаешь что даже твою писанину, накарябаную от руки в 1 классе разобрать было проще XD

Иллюстрация к комментарию

Российский автопром, помоги себе сам (

Мелочь, а приятно

Мелочь, а приятно


Депутат спросила у директора департамента культуры и туризма , откуда у той колье за 1млн и сумка Louis Vuitton при зарплате 28к

Там ещё и дети смотрят!

Там ещё и дети смотрят! Картинка с текстом, Крещенское купание, Храм, Церковь, Религия

Звонок из будущего

Только что на работе звонит телефон. Неприятный женский голос (НЖГ) заявляет:

НЖГ: Из военного комиссариата звонят! Факс для генерального директора примите

Я: (судорожно пытаюсь вспомнить, что это) Прошу прощения, мы не используем факс в работе

НЖГ: ВЫ ЧТО ТАМ, В КАМЕННОМ ВЕКЕ ЖИВЁТЕ?!


Подарок для уважения

Подарок для уважения

Пока босс спит

Актёры в старых советских фильмах с каждым годом играют всё лучше и лучше"

Актёры в старых советских фильмах с каждым годом играют всё лучше и лучше"


Мечты

Мечты


Второй участник - Владислав Ковалев из Могилева.

Матерый боец, хотя в жизни довольно миролюбивый человек. Но ровно до тех пор, пока не получит по лицу. А Зелимхан это и отчебучил: недавно у него с Ковалевым возник конфликт, и Юсупов не придумал ничего лучше, чем подойти сбоку и врезать Владу пощечину.

Поначалу Юсупов (он в красном балахоне) еще сопротивлялся: пытался что-то изображать и брать на болевой. Когда понял, что шансов нет, решил выиграть в своем стиле - ухватил соперника ниже пояса. Не помогло) А в конце совсем стух и только принимал звонкие удары по голове.


Как же нам всем иногда просто нужно в САНАТОРИЙ

Как же нам всем иногда просто нужно в САНАТОРИЙ


Зачем же я так

Я тут что-то у кого-то прочитал и вспомнилось.
Я года два с половиной назад, на пенсию уходил. Ну, пошёл в кадры, рапорт написал и тут кадровик мне и говорит человеческим голосом:
- Чтобы всё было совсем хорошо, нужен твой послужной список из военкомата. Мы, конечно, запрос напишем и почтой отправим, но это долго - надёжнее и быстрее будет если ты сам съездишь, как раз через неделю документы подадим и всё успеем.
- Хорошо - говорю - давай запрос поеду посмотрю на свой родной военкомат..
Приехал, зашёл в нужное отделение запрос показал, там они в шкафах порылись - нашли моё дело и говорят:
- Только пока военком визу на запросе не поставит - мы тебе выписку не дадим. Неси запрос в делопроизводство и приезжай через два дня.
Отнес запрос в делопроизводство, отдал. Уехал.
Приезжаю через два дня, захожу опять в нужное отделение, а они мне и послужной список мой показывают и говорят:
- Мы всё подготовили, но тебе его не отдадим, потому что нам из делопроизводства ещё запрос с визой военкома не принесли. Иди в делопроизводство разбирайся или приезжай на следующей неделе.
Я не гордый, пошёл в делопроизводство. Прихожу, там тётенька сиди, чай пьет. Я зашёл.
Здравствуйте! говорю - А где мой запрос? Я вам в понедельник приносил..
- А я не знаю - я его на подпись военкому отнесла и дальше ничего не знаю - отвечает мне тётенька - Приходите на следующей неделе.
- А может Вы к военкому сходите и спросите? - вкрадчиво интересуюсь я.
- Вы что? Я к самому военкому не пойду! - и смотрит на меня как американцы на советскую военную угрозу.
- Мне сходить? - спрашиваю. Надо же дать человеку последний шанс.
- Вы что пойдете к самому военкому? - и смотрит на меня глазами полными ужаса.
- Пойду.. - отвечаю - или Вы или я.. Но третий раз я сюда не поеду.
- Идёте сами. - махнула на меня рукой тётенька.
Ну, я и пошёл. Зашёл в приёмную, сказал секретарю что мне требуется поговорить с военкомом. Та мне говорит - "идите он не занят".
Я постучался, зашёл. Объяснил военкому ситуацию. О жизни поговорили. Нормальный мужик оказался военком - в отличии от некоторых увиденных мною, когда либо, полковников.
- Подожди, - говорит военком, - помню я этот запрос - я его ещё два дня назад подписал. Сейчас, всё будет. Ты подожди в коридоре.
Я вышел. Смотрю по коридору несётся тётенька из делопроизводства и забегает в кабинет к военкому. "Экстреминатус секвестирован" - почему то вспомнилось мне.
Через две минуты вылетает, сама красная как Боевое Знамя, одной Краснознамённой бригады, где я начинал свою службу молодым лейтенантом и в руках мой запрос, подписанный держит. Смотрит на меня и спрашивает:
- Зачем Вы так?
- Как так? - спрашиваю - Я вам мальчик, что ли бегать упрашивать вас работу свою делать. Или у меня дел других нет, кроме как по три раза за одной бумажкой сюда ездить? Давайте запрос - я дальше сам разберусь.
- Не надо - говорит - идёмте.
И полетела по коридору в сторону нужного мне отделения.
"Делопроизводитель птица гордая.. " - пронеслось в моей черепной коробке и я отправился следом.
Захожу к начальнику нужного мне отделения. Тот мне и говорит:
- Всё хорошо. Сейчас нужно только печать и визу военкома на Вашем послужном списке поставить.
- Ничего страшного - пожал я плечами - давайте я схожу.
- Не надо.. - сказал он мне- посидите тут - я быстро.
Схватил документы и ушёл.
Этот не безнадёжен - учится на чужих ошибках - подумал я.
Через пять минут я получил документы на руки и отправился на встречу неизбежному дембелю.

Читайте также: