Устранение неполадок в Windows

Исправить: Ошибка отступов Python

Python — это развивающийся язык программирования, который впервые был выпущен в 1991 году. Язык известен своей большой обширной библиотекой и поддерживает несколько парадигм программирования, таких как функциональное, императивное, процедурное и объектно-ориентированное.

Ошибка отступов Python при кодировании
Ошибка отступов в Python

Ошибка ‘Ошибка отступов: Ожидается блок с отступами‘ возникает у всех пользователей, будь то новички или опытные пользователи. Поскольку Python расставляет весь свой код по правильным пробелам, если у вас плохой отступ, код не скомпилируется, и вам будет выдано сообщение об ошибке.

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

Что вызывает ошибку отступа в Python?

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

  • Вы используете как пробелы, так и табуляции в вашем коде. Если оба символа используются как взаимозаменяемые, интерпретатор не сможет определить, какой из них следует использовать.
  • Вы поставили отступ неправильный. Если не следовать практике отступов, то неизбежно возникнет эта ошибка.
  • Вы забыли сделать отступ составные высказывания например, ‘if’, ‘for’, ‘while’ и т. д.
  • Вы забыли сделать отступ Определяемые пользователем функции или классы.

Решение 1: Проверка на наличие неправильных пробелов/табов

Не существует мгновенного исправления этой проблемы. Поскольку код принадлежит вам, вам придется пройтись по каждой строке и посмотреть, где вы допустили ошибку. В коде есть несколько блоков с разной структурой. Если есть оператор ‘If’, то необходимо сделать отступ для кода, который следует за ним.

Блочная структура, визуализирующая отступы в Python
Визуализация отступов в блочной структуре

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

Пример отступов в Python
Пример отступа

Правильный отступ показан в примере выше. Для начала посмотрите цикл ‘for’. Все внутри цикл ‘for’ должен иметь отступ. Внутри цикла ‘for’ у нас есть оператор ‘if’. Внутри оператора ‘if’ все должно быть далее отступ.

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

Решение 2: Включение символов табуляции/пробела в редакторе

Если вам трудно делать отступы в коде «наугад», как это делают все программисты, вы можете включить символы табуляции/пробела в вашей IDE или редакторе кода. Эта опция позволит использовать в коде маленькие «точки», каждая из которых обозначает пробел или табуляцию. Вы можете использовать это для более правильного отступа кода и убедиться, что нет лишних отступов или некоторые из них отсутствуют.

В этом примере мы возьмем Notepad++ и посмотрим, как можно включить символы. Если вы используете другую программу для редактирования кода, вы можете включить настройки, специфичные для нее.

  1. Нажмите Вид > Показать символ > Показать пробелы и TAB
    Включение пробельных символов и табуляции в Python
    Включение пробела и табуляции – Блокнот++
  1. Теперь опция включена. Вы также можете включить Руководство по отступам и вам станет легче.
Пример кода с правильным отступом в Python
Пример кода с правильными отступами

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

Добавить комментарий