Отступы в коде 😎
Всем известно, что в 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.