python
March 7

Отступы в коде 😎

Всем известно, что в Python для разделения блоков кода используются отступы. Согласно PEP 8 (Python Enhancement Proposal 8) на каждый уровень отступа необходимо использовать ровно четыре пробела.

Приведенный ниже код:

def print_numbers():
    for i in range(1, 6):
        if i % 2 == 0:
            print(f'число {i} четное')
        else:
            print(f'число {i} нечетное')

print_numbers()

выводит:

число 1 нечетное
число 2 четное
число 3 нечетное
число 4 четное
число 5 нечетное

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

Мы также можем использовать в качестве отступа любое другое количество пробелов. Перепишем приведенный выше код с использованием одного пробела в качестве отступа:

def print_numbers():
 for i in range(1, 6):
  if i % 2 == 0:
   print(f'число {i} четное')
  else:
   print(f'число {i} нечетное')

print_numbers()

Выглядит этот код непривычно, но работать будет корректно.

Мало кто знает, но размер отступа может варьироваться от блока к блоку:

def print_numbers():
 for i in range(1, 6):                              # 1 пробел
         if i % 2 == 0:                             # 8 пробелов
            print(f'число {i} четное')              # 3 пробела
         else:
                   print(f'число {i} нечетное')     # 10 пробелов

print_numbers()

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

Приведенный ниже код:

if True:
 print(1)
  print(2)
    print(3)

приводит к возбуждению исключения:

IndentationError: unexpected indent

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