❌ Ошибка 1: пропущен отступ после двоеточия
if x > 0:
print("Положительное")
Сообщение об ошибке: IndentationError: expected an indented block
Почему возникает: Python использует отступы для выделения блоков. После if: обязательно нужен отступ.
✅ Исправление
if x > 0:
print("Положительное")
❌ Ошибка 2: elif или else без if
x = 5
elif x == 5:
print("Пять")
Сообщение об ошибке: SyntaxError: invalid syntax
Почему возникает: elif и else могут стоять только после if или другого elif.
✅ Исправление
x = 5
if x == 5:
print("Пять")
elif x > 5:
print("Больше пяти")
❌ Ошибка 3: путаем elif с несколькими независимыми if
score = 85
if score >= 90:
print("Отлично")
if score >= 75:
print("Хорошо")
if score >= 50:
print("Удовлетворительно")
else:
print("Неудовлетворительно")
Почему возникает: здесь сработают сразу несколько блоков, потому что это независимые if. Для взаимоисключающих оценок нужна цепочка if-elif-else.
✅ Исправление
score = 85
if score >= 90:
print("Отлично")
elif score >= 75:
print("Хорошо")
elif score >= 50:
print("Удовлетворительно")
else:
print("Неудовлетворительно")
❌ Ошибка 4: сложная логика в тернарном операторе
x = 20
y = 10
z = 0
print(x) if (x > 10 and y < 5 or z == 0) else print(0)
Почему возникает: тернарный оператор предназначен для простых выборов значений. Сложные условия с and/or делают строку трудной для чтения и отладки.
✅ Исправление
x = 20
y = 10
z = 0
if x > 10 and y < 5 or z == 0:
print(x)
else:
print(0)
❌ Ошибка 5: match-case в старой версии Python
value = 1
match value:
case 1:
print("Один")
Сообщение об ошибке: SyntaxError: invalid syntax (в Python < 3.10)
Почему возникает: конструкция match-case появилась только в Python 3.10. В более ранних версиях match не является ключевым словом.
✅ Исправление
Используйте Python 3.10 или новее, либо замените match-case на цепочку if-elif-else:
value = 1
if value == 1:
print("Один")
elif value == 2:
print("Два")
else:
print("Другое")