Найти в Дзене
Python - простым языком

1.5. PEP8. Линтер Flake8. Синтаксические ошибки.

Прежде чем перейти к типам данных, переменным и прочему, хочу рассказать Вам об одной очень важной теме. Соблюдение PEP8, и использование линтеров для "чекинга" кода на предмет ошибок. Начнём пожалуй с главного. Что же такое PEP8, и с чем его едят. PEP8 - Если не вдаваясь в детали, простым языком, это стандарт кодирования. А если ещё проще, то это свод правил, который описывает различные аспекты написания кода. В нашем случае (изучение языка программирования - Python) это PEP8. Данный стандарт кодирования включает в себя практически все вопросы о том, как оформлять код, и каких правил необходимо придерживаться. В своих уроках я буду оформлять код учитывая требования стандарта, установленных PEP8. Заучивать все правила, изложенные там, конечно не надо. Точнее, надо, но я рекомендую, делать это в процессе написания кода, а не штудируя большое множество страниц правил. Если Вы изначально приучите себя правильно писать код, дальше Вы это будете делать на автомате. Вместе с тем, начинающим

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

Начнём пожалуй с главного. Что же такое PEP8, и с чем его едят.

PEP8 - Если не вдаваясь в детали, простым языком, это стандарт кодирования. А если ещё проще, то это свод правил, который описывает различные аспекты написания кода. В нашем случае (изучение языка программирования - Python) это PEP8.

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

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

Оригинальный текст PEP8 Вы сможете найти на официальном сайте: https://peps.python.org/pep-0008/

Обязательно посмотрите, лишним не будет.

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

Flake8 - линтер, главной задачей которого является проверка Ваших файлов и поиск несоответствия кода требованиям PEP8.

Для того, что использовать данную программу, необходимо установить её. Давайте сделаем это:

Установка происходит с помощью команды в терминале Вашего PyCharm:

python -m pip install flake8
-2

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

Важный момент. Если при попытке установить Flake8, у вас начнут сыпаться ошибки, такие как: "AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?", это говорит о том, что у Вас установлены устаревшие версии pip и других пакетов. В этом случае необходимо поочерёдно запустить следующие команды:

python -m ensurepip --upgrade
python -m pip install --upgrade setuptools
python.exe -m pip install --upgrade pip

После установки обновлений можете смело устанавливать Flake8.

python -m pip install flake8

После того, как Вы установили Flake8, давайте проверим как он работает.

Для примера я создал в свой рабочей папке файл TEST.py, где написал небольшой код, и специально сделал несколько ошибок:

-3

А теперь, давайте запустим Flake8 и пусть он проверит наш файл. Для этого в терминале выполняем команду:

flake8 d:/PYTHON/TEST.py
-4

И так, наш линтер нашёл первую ошибку. Незакрытая "кавычка" в строке 2. Давайте исправим это.

-5

А теперь он указывает на то, что есть ошибка синтаксиса в строке 1. В нашем случае, у нас в скобках стоит оператор, но отсутствует после него операнд. Исправим!

-6

Отлично! С помощью линтера Flake8 мы нашли все ошибки в нашем коде. Теперь код соответствует требованиям PEP8.

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

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

А пока, небольшое домашнее задание: Установите себе линтер Flake8, создайте в папке своего проекта тестовый файл и попрактикуйтесь в использовании линтера.

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

Если Вам нравятся мои уроки, то "лайк" и подписка на мой канал, будут самой большой наградой!