Отступ в питоне в строке

Подробно про отступы в Python

Отступы в Python используются для создания группы операторов. Многие популярные языки, такие как C и Java, используют фигурные скобки (<>) для определения блока кода, Python использует отступы.

Как работает отступ в Python?

При написании кода на Python мы должны определить группу операторов для функций и циклов. Это делается путем правильного отступа операторов для этого блока.

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

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

def foo(): print("Hi") if True: print("true") else: print("false") print("Done")

Отступ Python

Правила отступов

  • Мы не можем разделить отступ на несколько строк с помощью обратной косой черты.
  • Первая строка кода Python не может иметь отступа, она вызовет IndentationError .
  • Вам следует избегать смешивания табуляции и пробелов для создания отступов. Это потому, что текстовые редакторы в системах, отличных от Unix, ведут себя по-разному, и их смешивание может привести к неправильному отступу.
  • Для отступа предпочтительнее использовать пробелы, чем символ табуляции.
  • Лучше всего использовать 4 пробела для первого отступа, а затем продолжать добавлять 4 дополнительных пробела для увеличения отступа.

Преимущества

  • В большинстве языков программирования отступы используются для правильной структуры кода. В Python он используется для группировки, автоматически делая код красивым.
  • Правила отступов Python очень просты. Большинство IDE Python автоматически создают отступ для кода, поэтому очень легко написать код с правильным отступом.

Недостатки

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

Примеры IndentationError

Давайте посмотрим на несколько примеров ошибки IndentationError в коде Python.

>>> x = 10 File "", line 1 x = 10 ^ IndentationError: unexpected indent >>>

У нас не может быть отступа в первой строке кода. Вот почему возникает ошибка IndentationError.

if True: print("true") print("Hi") else: print("false")

IndentationError

Строки кода внутри блока if имеют другой уровень отступа, отсюда и ошибка IndentationError.

if True: print("true") else: print("false") print("Done")

ошибка

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

if True: print("true") else: print("false")
File "/Users/pankaj/Documents/PycharmProjects/PythonTutorialPro/hello-world/indent.py", line 2 print("true") ^ IndentationError: expected an indented block

Вывод

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

Читайте также:  Python зачем нужен len

Источник

Python табуляция (отступы)

Одна из особенностей Python — для оформления блоков кода вместо привычных фигурных скобок, как в C, C ++, Java или операторных скобок begin … end как в Pascal, используются отступы (или табуляция).

Подробнее о том, какие есть правила расстановки отступов — рассмотрим далее.

Почему табуляция в Питоне так важна?

Что такое отступ? Говоря простыми словами, это просто добавление пробела перед определенным оператором.

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

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

  • Не нужно проверять, не потерялась ли лишняя скобка;
  • Читать такой код удобнее (по » Философии Python » — читаемость имеет значение);
  • Легче работать со сторонними библиотеками;
  • Код вашего коллеги будет максимально похож на ваш код.

💁‍♂️ Чтобы понять, насколько это важно, можно представить ситуацию, когда в книге удалить все номера страниц, в результате чего нельзя будет понять, где продолжать чтение. Без использования indent-отступа интерпретатор Python не сможет определить, какой оператор необходимо выполнять следующим, что относится к разным блокам кода. В результате и возникает исключение типа IndentationError .

Отступы в языке Python — это способ указать интерпретатору, что оператор (или целая их группа) — это определенный block-комбинация команд для выполнения задачи.

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

Читайте также:  Java управление docker контейнерами

def my_small_function(): # [0 пробелов] определение функции со знаком «:» в конце if a > b: # [4 пробела] начало блока условия, располагается внутри функции return a # [8 пробелов] часть блока if else: # [4 пробела] продолжение блока условия, на том же уровне, что и if return b # [8 пробелов] часть блока else print(my_small_function()) # [0 пробелов] вызов функции вне ее блока

💡 По умолчанию в Python используется 4 пробела в качестве отступа

Однако программист может использовать и другое их количество, но не менее одного.

Что нам говорит PEP8?

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

Примеры кода

👍 Правильное оформление

# Выравнивание выполнено по открывающей скобке foo = name_of_function(one, two, three, four) # Дополнительные отступы используются для выделения блока от остальных def name_of_function( one, two, three, four): print(one)

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

my_list = [ one, two, three, four, five, six, ] result = some_arguments( ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, )

👎 Ошибочное оформление

# Без вертикального выравнивания аргументы не должны располагаться на первой линии foo = name_of_function(one, two, three, four) # Используется больше отступов для выделения блока от остальных def name_of_function( one, two, three, four): print(one)

😐 Выборочное оформление

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

some_list = [ one, two, three, four, five, six, ] res = some_arguments( ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, )

Табуляция или пробелы — что использовать? 🤷‍♂️

Согласно официальной документации, самым предпочтительным способом оформления отступов является использование пробелов, обычно 4

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

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

Настройка IDE для работы с отступами

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

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

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

PyCharm

В случае использования интегрированной среды разработки PyCharm для настройки оформления отступов необходимо последовательно перейти по таким пунктам меню:

File → Settings → Editor → Code style → Python

Для настроек параметров есть 3 поля:

  1. Tab size — количество пробелов при нажатии клавиши Tab;
  2. Indent — количество пробелов для одного отступа;
  3. Continuation indent — количество пробелов для отступа, когда следующая строка продолжает предыдущую.

💭 Еще одна полезная опция — отображение точек вместо каждого пробела, что особо удобно при поддержке чужого кода. В PyCharm для активации этой функции следует перейти File → Settings → Editor → General → Appearance → Show whitespaces , установив галочку напротив соответствующего пункта.

VSCode

Для настройки аналогичных функций в VSCode нужно нажать комбинацию клавиш ctrl + , или перейти по пунктам меню

File → Preferences → Settings

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

  • editor: insert spaces — использовать ли пробелы вместо табуляции;
  • editor: tab size — желаемое количество пробелов для одного отступа.

Ошибки при работе с отступами

При неправильном оформлении отступов интерпретатор Python будет сообщать об ошибках. Таких ошибок может быть несколько, рассмотрим основные.

expected an indented block

Данная ошибка может возникать в случае, когда после оглашения начала блока кода — def, if, while и некоторых других на следующей строке отсутствует отступ. Для ее исправления после начала блока должна быть хотя бы одна вложенная строка с отступом.

Возникает ошибка в том случае, когда перед началом строки есть отступ, но на предыдущей отсутствует оглашение начала блока кода, то есть, нет def, if, elif, else, for или while. Обычно такая ситуация возникает случайно, когда программист ставит слишком много пробелов в начале строки.

Indentationerror: expected an indented block

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

Таким образом, отступы в языке программирования Python, в отличие от многих других, играют такую же важную роль, как и служебные слова, так как именно они определяют создание блоков кода. Для каждого indent рекомендуется использовать 4 пробела, однако программист по своему желанию может установить и другое их количество, главное — одинаковое во всем проекте.

Источник

Оцените статью