Отступы в Python
В отличие от многих языков, Python не использует фигурные скобки {} для выделения блоков. Вместо этого блок кода определяется отступами (4 пробела):
if True:
print("Этот код внутри if")
print("Это тоже внутри if")
print("А это уже вне блока if")
После двоеточия : следующая строка обязательно должна иметь отступ (4 пробела). Все строки с одинаковым отступом принадлежат одному блоку.
⚠️ Важно: Стандарт PEP 8: используйте ровно 4 пробела для каждого уровня отступа. Не смешивайте табуляцию и пробелы!
Простой if
Условный оператор if выполняет блок кода, если условие истинно:
age = 18
if age >= 18:
print("Вы совершеннолетний")
if-else
Команды после else выполняются, если условие после if ложно:
age = 16
if age >= 18:
print("Вы совершеннолетний")
else:
print("Вы несовершеннолетний")
if-elif-else
elif (сокращение от else if) позволяет проверить несколько условий:
score = 85
if score >= 90:
grade = "Отлично"
elif score >= 75:
grade = "Хорошо"
elif score >= 60:
grade = "Удовлетворительно"
else:
grade = "Неудовлетворительно"
print(f"Оценка: {grade}") # Хорошо
Условия проверяются сверху вниз. Как только находится истинное, остальные пропускаются.
Тернарный оператор
Короткая запись if-else в одну строку:
age = 20
status = "Взрослый" if age >= 18 else "Ребёнок"
print(status) # Взрослый
Операторы сравнения
| Оператор | Значение | Пример |
|---|---|---|
== | Равно | 5 == 5 > True |
!= | Не равно | 5 != 3 > True |
> | Больше | 5 > 3 > True |
< | Меньше | 5 < 3 > False |
>= | Больше или равно | 5 >= 5 > True |
<= | Меньше или равно | 5 <= 3 > False |
Распространённые ошибки с отступами
- IndentationError: unexpected indent — лишний отступ там, где он не нужен
- IndentationError: expected an indented block — отсутствует отступ после
if,for,defи т.д. - Смешивание табуляции и пробелов приводит к трудноуловимым ошибкам
# Ошибка: нет отступа после if
if True:
print("Ошибка!")
💡 Совет: VS Code (Shift+Alt+F) и PyCharm (Ctrl+Alt+L) умеют автоформатировать отступы. Включите
Format On Saveв настройках редактора.