выберите строки кода соответствующие стандарту pep 8 примечание будьте внимательны с пробелами
Решение модуля 2.3 из курса для начинающих «Поколение Python»
Ответы на задачи из модуля 2.3 «Поколение Python»: курс для начинающих. Нумерация сквозная и идет именно по задачам.
Предыдущий модуль 2.2 «Поколение Python».
Первые три вопроса
1. Что будет выведено на экран в результате выполнения следующего кода?
Ответ: 31-12-2019
2. Что будет выведено на экран в результате выполнения следующего кода?
Решение: Mercury*Venus!Mars**Jupiter?
3. Сколько строк будет распечатано в результате выполнения следующего кода?
Примечание. Последовательность символов \n задает перевод строки.
Ответ: 5.
Четвертый номер:
Напишите программу, которая выводит на экран текст «I***like***Python» (без кавычек).
Решение:
Пятая задача:
Напишите программу, которая считывает строку-разделитель и три строки, а затем выводит указанные строки через разделитель.
Формат входных данных
На вход программе подаётся строка-разделитель и три строки, каждая на отдельной строке.
Формат выходных данных
Программа должна вывести введённые три строки через разделитель.
Шестая задача:
Напишите программу, которая приветствует пользователя, выводя слово «Привет» (без кавычек), после которого должна стоять запятая и пробел, а затем введенное имя и восклицательный знак.
Формат входных данных
На вход программе подаётся одна строка — имя пользователя.
Формат выходных данных
Программа должна вывести текст в соотвествии с условием задачи.
Примечание 1. Перед восклицательным знаком не должно быть пробелов.
Ответ:
Пять последних вопросов
7. Какие из имён допустимы для названия переменных в Python?
Ответ: teacher teacher2 teacher_2
8. Что покажет приведенный ниже фрагмент кода?
Результат: Pascal
9. Какое значение будет находиться в переменной s1 после выполнения следующего кода?
Результат: Python
10. Выберите строки кода, соответствующие стандарту PEP 8.
Примечание. Будьте внимательны с пробелами.
Ответы:
11. Что будет напечатано в результате выполнения следующей программы?
Правильный текст: Python+C#=awesome
Len-sovet
Женские секреты, советы, лайфхаки
Поиск по этому блогу
Модуль 2.3. Параметры sep и end
Напишите программу, которая считывает строку-разделитель и три строки, а затем выводит указанные строки через разделитель.
Формат входных данных:
На вход программе подаётся строка-разделитель и три строки, каждая на отдельной строке.
Формат выходных данных:
Программа должна вывести введённые три строки через разделитель.
Напишите программу, которая приветствует пользователя, выводя слово «Привет» (без кавычек), после которого должна стоять запятая и пробел, а затем введенное имя и восклицательный знак.
Формат входных данных:
На вход программе подаётся одна строка — имя пользователя.
Формат выходных данных:
Программа должна вывести текст в соотвествии с условием задачи.
Примечание 1. Перед восклицательным знаком не должно быть пробелов.
Что покажет приведённый ниже фрагмент кода?
Разметка кода Python, PEP 8
Разметка кода
Рекомендуется придерживаться следующих правил разметки кода
Отступы:
Используйте 4 пробела для добавления отступа.
Последующие строки обернутых элементов в скобки должны быть выравнены либо по вертикали, либо с помощью висящего отступа.
При использовании висячего отступа, следует учитывать следующее: в первой строке не должно быть аргументов, и следует использовать дополнительный отступ, чтобы четко отличить себя как строку продолжения.
Правильно:
Не правильно:
Правило 4 пробелов не является обязательным для строк продолжения.
По желанию:
Закрывающая скобка в многострочных конструкциях может располагаться либо под первым символом последней строки списка:
или может быть на уровне первого символа строки, которая начинает многострочную конструкцию:
TAB или пробелы?
Пробелы являются предпочтительным методом отступа.
Табуляция должна использоваться исключительно для соответствия с кодом, который уже имеет такие отступы.
Python 3 запрещает смешивать использование табуляции и пробелов для отступа. Код с отступом в виде комбинации символов табуляции и пробелов должен быть преобразован исключительно в пробелы.
Максимальная длина строки с кодом:
Ограничьте все строки максимум 79 символами.
Для строк документации или комментариев длина строки должна быть ограничена 72 символами.
Ограничение ширины окна редактора позволяет одновременно открывать несколько файлов и хорошо работает при использовании инструментов обзора, которые представляют две версии кода в соседних окнах.
Перенос по умолчанию в большинстве редакторов нарушает визуальную структуру кода, что делает его более трудным для понимания. Данные ограничения приняты для того, чтобы избежать автоматического переноса строк в редакторах с шириной окна, установленной на 80 символов, даже если он помещает маркер курсора в последний столбец. Некоторые IDE могут вообще не иметь авто-переноса строк.
Некоторые команды разработчиков предпочитают более длинные строки при написании кода. Исключительно для поддержания такого кода внутри команды, разрешается увеличить ограничение длины строки до 99 символов, при условии, что комментарии и документация должна быть ограничена 72 символами
Стандартная библиотека Python консервативна и требует ограничения строки до 79 символов (и строки документации/комментариев до 72).
Еще один такой случай возможен с assert утверждениями.
Удостоверьтесь, что сделали отступ в 4 пробела для продолжения строки кода.
Перенос строки до или после двоичного оператора?
В течение десятилетий рекомендуется переносить строки после двоичного оператора. Но это может усложнить читабельность. При таком переносе, операторы, как правило, разбросаны по разным столбцам, при этом каждый оператор отошел от своей переменной и перешел на предыдущую строку. Здесь глаз должен сделать дополнительную работу, чтобы увидеть, какие элементы добавляются, а какие вычитаются:
Чтобы решить проблему читаемости, математики следуют противоположному соглашению. Следуя традиции математики, обычно получается более читаемый код:
В коде Python допускается перенос до или после двоичного оператора, если есть такое соглашение. Для нового кода предлагается математический стиль.
Пустые строки:
Определения функций и классов верхнего уровня должны быть заключены в две пустые строки.
Определения методов внутри класса заключены в одну пустую строку.
Дополнительные пустые строки могут использоваться для разделения групп связанных функций. Пустые строки могут быть пропущены между связкой связанных строк (например, набором фиктивных реализаций).
Используйте пустые строки в функциях, чтобы указать логические разделы.
Кодировка файла с кодом:
Код в основном дистрибутиве Python всегда должен использовать UTF-8 (или ASCII в Python 2).
Файлы, использующие ASCII (в Python 2) или UTF-8 (в Python 3), не должны иметь декларации кодировки.
Для Python 3.0 и выше, для стандартной библиотеки предписана следующая политика. Все идентификаторы в стандартной библиотеке Python ДОЛЖНЫ использовать идентификаторы только ASCII и ДОЛЖНЫ использовать английские слова везде, где это возможно (сокращения и технические термины, которые не являются английскими). Кроме того, все строковые литералы и комментарии также должны быть в ASCII.
Единственными исключениями являются:
Проектам с открытым исходным кодом с глобальной аудиторией рекомендуется придерживаться аналогичной политики.
Импорт:
Импорт обычно должен быть в отдельных строках:
Это нормально, хотя:
Импорт всегда помещается вверху файла, сразу после любых комментариев и строк документации, а также перед глобальными переменными и константами модуля.
Импорт должен быть сгруппирован в следующем порядке:
Вы должны поставить пустую строку между каждой группой импорта.
Рекомендуется абсолютный импорт, так как он обычно более читабелен и, как правило, ведет себя лучше (или, по крайней мере, дает лучшие сообщения об ошибках), если система импорта настроена неправильно (например, когда каталог внутри пакета заканчивается в sys.path ):
Однако явный относительный импорт является приемлемой альтернативой абсолютному импорту, особенно когда речь идет о сложном макете в пакете, где использование абсолютного импорта было бы излишне многословным:
Код стандартной библиотеки должен избегать сложных макетов пакетов и всегда использовать абсолютный импорт.
Неявный относительный импорт никогда не должен использоваться и был удален в Python 3.
При импорте класса из модуля, обычно можно записать следующее:
Если это написание вызывает локальные конфликты имен, то запишите импорт через точку:
Следует избегать импорта подстановочных знаков ( from import * ), так как из-за этого неясно, какие имена присутствуют в пространстве имен, запутывает как читателей, так и многие автоматизированные инструменты. Существует один оправданный вариант использования для импорта с использованием подстановочного знака, который заключается в повторной публикации внутреннего интерфейса как части общедоступного API.
При повторной публикации имен, все же применяются приведенные ниже рекомендации, касающиеся открытых и внутренних интерфейсов.
Расположение имен «dunders» в коде:
Кавычки в строках:
В Python одинарные и двойные кавычки функционально одинаковы. PEP не дает рекомендации какие из них предпочтительнее. Выберите правило и придерживайтесь его. Если, например, строка содержит одинарные кавычки, чтобы избежать обратной косой черты в строке, используйте дополнительно двойные кавычки. Это улучшает читаемость.
Для строк с тройными кавычками всегда используйте символы двойной кавычки, чтобы соответствовать соглашению с документированной строкой в PEP 257.
Читай PEP 8 — пиши код как ван Россум
В борьбе за красивый и понятный код Python-сообществу нужны ориентиры: что такое хорошо и что такое плохо. Создатель языка Гвидо ван Россум (Guido van Rossum) и его соратник Барри Уорсо (Barry Warsaw) описали хороший стиль Py-кода в документе PEP 8.
Краткий обзор PEP 8 ниже поможет вам ориентироваться в руководстве. Но это ни в коем случае не альтернатива оригиналу, который во время занятий Python хорошо бы держать под рукой.
Зачем нужен PEP 8
Единый стиль оформления делает код понятным для самого программиста и его коллег с разным уровнем подготовки.
В идеале наиболее сложный фрагмент кода должен быть понятен с первого прочтения. Это упрощает командную разработку и обучение новичков, позволяет вам быстро возвращаться к собственным давним проектам.
PEP 8 затрагивает структуру и внешний вид кода:
выбор кодировки исходного кода;
группировку инструкций по импорту модулей;
максимальную длину строки кода — рекомендуется до 79 знаков, а для строк документации (docstring) — 72 знака;
использование отступов — табуляции и пробелов;
использование пустых строк для разбивки кода на блоки и выделения функций верхнего уровня;
именование переменных, констант, классов и экземпляров, функций, аргументов, модулей, пакетов;
выбор уровня доступности классов и методов (public, private, API-подклассы), а также порядка их наследования.
Без этого комментария интерпретатор выдаст ошибку.
PEP 8: Питону важны отступы
Теоретически вы можете использовать иное число пробелов: 2, 8 и т.д. Главное, чтобы оно совпадало по всему коду — иначе интерпретатор будет ругаться. Но 4 — «золотой стандарт» сообщества: быстро ставить, привычно читать.
В чужом коде вам может встретиться другой вид отступа — табуляция. Его PEP 8 категорически не рекомендует, но с одной оговоркой. Если вы дорабатываете готовый проект, где отступы сделаны табуляцией, придерживайтесь принятого до вас стандарта. Если в коде разнобой, замените всё на пробелы.
Когда пробелы в Python не ставят
Сразу после открывающей скобки и перед закрывающей: ( x ) — так не надо.
Перед скобками при вызове аргумента. Неправильно: arg (1). Правильно: arg(1).
Перед скобками индекса и среза: dict[‘step’] = map[i].
Между именем параметра/аргумента, знаком «=» и значением: min(a=10, b=input).
И, пожалуйста, не выравнивайте код лишними пробелами. По сторонам от «=» ставьте не больше одного пробела. Не пытайтесь с помощью отступов придать блоку вид таблицы или оглавления. Это замедляет чтение и понимание написанного.
Лучше ставьте по одному пробелу по сторонам от знаков арифметических действий:
Не рекомендуется записывать несколько команд в одну строку через точку с запятой. Вместо «act1(); act2(); act3()» — пишите:
В комментариях не забывайте ставить пробел после знака «#».
PEP 8 и имена объектов в Python
Если хотите назвать переменную одним символом, избегайте строчной латинской l («эль»), заглавной I («ай») и заглавной O — в некоторых шрифтах они неотличимы от цифр 1 и 0 соответственно. С заглавной L таких проблем нет.
Объекты разного типа должны отличаться и по формату записи имён. Так читатель быстрее понимает, что перед ним. Называйте:
Классы и исключения — LikeThis
Переменные и аргументы — like_this
Функции и методы — тоже like_this, но допускается и likeThis, если вы дописываете старый или чужой код, где уже задан такой формат.
Если имя аргумента вашей функции совпадает с зарезервированным в Python словом, не искажайте написание, но ставьте подчёркивание в конце. Вот так: «input_».
Проверка истинности без знаков равенства
Не используйте два знака равенства (==) для проверки булевых значений. Вместо этого используйте if или if not с именем объекта (например, переменной):
Другое важное о Python в PEP 8
В руководстве по стилю есть рекомендованный порядок импорта модулей: сначала грузите модули стандартной библиотеки, затем — из сторонних библиотек, в конце — ваши собственные модули.
При обработке исключений используйте синтаксис привязки имён, равно совместимый с Python 2 и 3:
Старайтесь минимизировать количество кода в конструкциях try… except. Это поможет избежать трудных в обнаружении ошибок.
По возможности выбирайте синтаксис, который работает для всех реализаций Python: CPython, Jython, PyPy и других.
Автоматическая PEP проверка Python-кода
Осознанная необходимость
Помните, что знать PEP 8 вы обязаны, а следовать ему — не всегда. Отступы придётся соблюдать, иначе интерпретатор откажется выполнять ваш код. Но в самом руководстве указаны случаи, когда разработчик по своему усмотрению может и должен нарушать рекомендации.
В борьбе за красивый и понятный код Python-сообществу нужны ориентиры: что такое хорошо и что такое плохо. Создатель языка Гвидо ван Россум (Guido van Rossum) и его соратник Барри Уорсо (Barry Warsaw) описали хороший стиль Py-кода в документе PEP 8.
Краткий обзор PEP 8 ниже поможет вам ориентироваться в руководстве. Но это ни в коем случае не альтернатива оригиналу, который во время занятий Python хорошо бы держать под рукой.
Зачем нужен PEP 8
Единый стиль оформления делает код понятным для самого программиста и его коллег с разным уровнем подготовки.
В идеале наиболее сложный фрагмент кода должен быть понятен с первого прочтения. Это упрощает командную разработку и обучение новичков, позволяет вам быстро возвращаться к собственным давним проектам.
PEP 8 затрагивает структуру и внешний вид кода:
выбор кодировки исходного кода;
группировку инструкций по импорту модулей;
максимальную длину строки кода — рекомендуется до 79 знаков, а для строк документации (docstring) — 72 знака;
использование отступов — табуляции и пробелов;
использование пустых строк для разбивки кода на блоки и выделения функций верхнего уровня;
именование переменных, констант, классов и экземпляров, функций, аргументов, модулей, пакетов;
выбор уровня доступности классов и методов (public, private, API-подклассы), а также порядка их наследования.
Без этого комментария интерпретатор выдаст ошибку.
PEP 8: Питону важны отступы
Теоретически вы можете использовать иное число пробелов: 2, 8 и т.д. Главное, чтобы оно совпадало по всему коду — иначе интерпретатор будет ругаться. Но 4 — «золотой стандарт» сообщества: быстро ставить, привычно читать.
В чужом коде вам может встретиться другой вид отступа — табуляция. Его PEP 8 категорически не рекомендует, но с одной оговоркой. Если вы дорабатываете готовый проект, где отступы сделаны табуляцией, придерживайтесь принятого до вас стандарта. Если в коде разнобой, замените всё на пробелы.
Когда пробелы в Python не ставят
Сразу после открывающей скобки и перед закрывающей: ( x ) — так не надо.
Перед скобками при вызове аргумента. Неправильно: arg (1). Правильно: arg(1).
Перед скобками индекса и среза: dict[‘step’] = map[i].
Между именем параметра/аргумента, знаком «=» и значением: min(a=10, b=input).
И, пожалуйста, не выравнивайте код лишними пробелами. По сторонам от «=» ставьте не больше одного пробела. Не пытайтесь с помощью отступов придать блоку вид таблицы или оглавления. Это замедляет чтение и понимание написанного.
Лучше ставьте по одному пробелу по сторонам от знаков арифметических действий:
Не рекомендуется записывать несколько команд в одну строку через точку с запятой. Вместо «act1(); act2(); act3()» — пишите:
В комментариях не забывайте ставить пробел после знака «#».
PEP 8 и имена объектов в Python
Если хотите назвать переменную одним символом, избегайте строчной латинской l («эль»), заглавной I («ай») и заглавной O — в некоторых шрифтах они неотличимы от цифр 1 и 0 соответственно. С заглавной L таких проблем нет.
Объекты разного типа должны отличаться и по формату записи имён. Так читатель быстрее понимает, что перед ним. Называйте:
Классы и исключения — LikeThis
Переменные и аргументы — like_this
Функции и методы — тоже like_this, но допускается и likeThis, если вы дописываете старый или чужой код, где уже задан такой формат.
Если имя аргумента вашей функции совпадает с зарезервированным в Python словом, не искажайте написание, но ставьте подчёркивание в конце. Вот так: «input_».
Проверка истинности без знаков равенства
Не используйте два знака равенства (==) для проверки булевых значений. Вместо этого используйте if или if not с именем объекта (например, переменной):
Другое важное о Python в PEP 8
В руководстве по стилю есть рекомендованный порядок импорта модулей: сначала грузите модули стандартной библиотеки, затем — из сторонних библиотек, в конце — ваши собственные модули.
При обработке исключений используйте синтаксис привязки имён, равно совместимый с Python 2 и 3:
Старайтесь минимизировать количество кода в конструкциях try… except. Это поможет избежать трудных в обнаружении ошибок.
По возможности выбирайте синтаксис, который работает для всех реализаций Python: CPython, Jython, PyPy и других.
Автоматическая PEP проверка Python-кода
Осознанная необходимость
Помните, что знать PEP 8 вы обязаны, а следовать ему — не всегда. Отступы придётся соблюдать, иначе интерпретатор откажется выполнять ваш код. Но в самом руководстве указаны случаи, когда разработчик по своему усмотрению может и должен нарушать рекомендации.
Самоучитель
PEP 8
Python, подобно живому организму, развивается и приобретает новые возможности благодаря многочисленному международному сообществу согласно определенным правилам и стандартам PEP. PEP – Python Enhancement Proposal, предложения по развитию Python. Эти стандарты позволяют создавать унифицированную проектную документацию для новых утвержденных возможностей языка Python. Самый известный PEP имеет восьмой порядковый номер. PEP8 содержит перечень принципов написания красивого и лаконичного программного кода на языке Python.
Под названием каждого подраздела главы будет находиться по одному из 19 принципов философии Python (Zen of Python). Попытайтесь «прочувствовать» то, что имел в виду автор. Также, если хочется, вместо русской адаптации этих постулатов, увидеть оригинальный текст Тима Петерса, можно запустив вот такую программу.
Для чего придуман PEP8?
(Читаемость имеет значение)
PEP8 существует, чтобы улучшить “читабельность„ кода. Но почему этот параметр имеет настолько большую важность? Почему написание хорошо читаемого кода – один из фундаментальных принципов языка Python?
Как сказал создатель Python, Гвидо Ван Россум: «Код читается гораздо чаще, чем пишется». Вы можете провести несколько минут, или весь день, в процессе написания куска кода для, к примеру, аутентификации пользователя. Написав его, однажды, вы не будете писать его еще раз. Но вы точно вернетесь, чтобы прочитать его еще и еще раз. Эта часть кода может быть частью проекта, над которым вы работаете. Каждый раз, возвращаясь к этому файлу, придется вспомнить, что этот код делает и почему вы написали это именно так.
Если вы начинающий программист Python, вам может быть тяжело запомнить, что делает определенная часть кода по прошествии нескольких дней после ее написания. Однако, если вы будете следовать рекомендациям PEP8, можете быть уверены, ваш код будет в полном порядке. Вы будете знать, что добавили достаточно пробелов, в соответствии с разделением на логические блоки кода.
Соблюдение PEP8 особенно важно, если вы в поисках вакансии python-разработчика. Чистый и читаемый код показывает высокий профессионализм. Он говорит работодателю о вашем понимании правильного структурирования программного кода.
Если же вы более опытный Python-программист, тогда с помощи PEP8 можно с легкостью объединиться с другими программистами для работы над одной задачей. Хорошо читаемый код имеет в данном случае особую критичность. Люди, ранее не видевшие вас, но знакомые с вашим кодом, будут читать, понимая идею, которую вы хотели донести.
Негласная договоренность об именах
(Явное лучше, чем неявное)
При написании Python кода, необходимо придумывать имена многим вещам: переменным, функциям, классам, пакетам и так далее. Выбор разумных имен сэкономит вам время и силы в последствии. По названию нужно суметь понять, что представляет собой определенная переменная, функция или класс. Вы также избежите использования некорректных имен, которые могут привести к критическим ошибкам, плохо поддающимся отладке.
Не использовать одиночные буквы l, O, или I в качестве каких‑либо имен из‑за риска спутать их с 1 и 0, в зависимости от шрифта.
Стили именования
В таблице ниже описаны некоторые из распространенных стилей именования в коде Python и указаны случаи, когда их следует использовать:
Тип | Соглашение об именовании | Примеры |
---|---|---|
Функции | Используйте слово или слова в нижнем регистре. Для удобства чтения разделяйте слова подчеркиванием. | function, my_function |
Переменные | Используйте одну строчную букву, слово или слова. Для удобства чтения разделяйте слова подчеркиванием. | x, var, my_variable |
Классы | Каждое слово начинайте с заглавной буквы. Не разделяйте слова подчеркиванием. Этот стиль называется «дело верблюда». | Model, MyClass |
Методы | Используйте слово или слова в нижнем регистре. Для удобства чтения разделяйте слова подчеркиванием. | class_method, method |
Константы | Используйте одну заглавную букву, слово или слова. Для удобства чтения разделяйте слова подчеркиванием. | CONSTANT, MY_CONSTANT, MY_LONG_CONSTANT |
Модули | Используйте короткие слова или слова в нижнем регистре. Для удобства чтения разделяйте слова подчеркиванием. | module.py, my_module.py |
Пакеты | Используйте короткие слова или слова в нижнем регистре. Не разделяйте слова подчеркиванием. | package, mypackage |
Помимо выбора правильных стилей именования в вашем коде, вы также должны тщательно выбирать сами имена. Ниже приведены несколько советов, как сделать это максимально эффективно.
Правильный выбор имени
Выбор имен для переменных, функций, классов и т. д. может оказаться неожиданно сложной задачей. При написании кода вы должны хорошо продумать свой выбор имен, так как это сделает ваш код более читаемым. Лучший способ назвать ваши объекты в 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 символов;
Не используйте сокращения, начинайте предложения с заглавной буквы;
Не забывайте актуализировать комментарии, при изменении кода.
Пример простейшего комментария:
Пробелы в выражениях и утверждениях
(Разреженное лучше, чем плотное)
Полезность пробелов в выражениях и операторах трудно переоценить. Если пробелов недостаточно, код может быть трудночитаемым, так как все сгруппированы вместе. Если пробелов слишком много, может быть сложно визуально объединить строки кода в, логически связанные, блоки.
Окружите следующие бинарные операторы одним пробелом с каждой стороны: