Освоение условных операторов Python: IF, ELSE, ELIF и switch-подобная логика
Что такое условные операторы в Python?
Условные операторы позволяют программе выполнять разные блоки кода в зависимости от булевых выражений. В Python основной конструкцией является оператор if.
В этом руководстве мы рассмотрим использование if, else, elif и словарную альтернативу switch-case. Каждый раздел содержит краткие примеры.
- Понимание оператора
if - Что происходит, когда условие
ifложно - Использование блока
else - Распространённые ошибки с
else - Применение
elifдля множественных ветвей - Сжатие логики тернарными выражениями
- Вложенные операторы
if - Реализация switch-case через словари
Основы оператора if в Python
Синтаксис
if expression:
# блок выполняется, когда expression истинно
else:
# блок выполняется, когда expression ложно
Пример:
def main():
x, y = 2, 8
if x < y:
st = "x is less than y"
else:
st = "x is not less than y"
print(st)
if __name__ == "__main__":
main()
Что происходит, когда условие if ложно?
Если условие оценивается как False и нет блока else, тело if пропускается, и программа продолжается после блока.
Пример с невыполняющимся условием:
def main():
x, y = 8, 4
if x < y:
st = "x is less than y"
else:
st = "x is greater than or equal to y"
print(st)
if __name__ == "__main__":
main()
Использование блока else
Блок else выполняется, когда предыдущее условие if ложно. Полезно для бинарного решения.
def main():
x, y = 8, 4
if x < y:
st = "x is less than y"
else:
st = "x is greater than y"
print(st)
if __name__ == "__main__":
main()
Распространённые ошибки с else
Когда два значения равны, блок else может неверно сообщать «больше» или «меньше».
def main():
x, y = 8, 8
if x < y:
st = "x is less than y"
else:
st = "x is greater than y" # Неверно, когда x == y
print(st)
if __name__ == "__main__":
main()
Введение elif для множественных ветвей
Клауза elif позволяет проверять дополнительные условия после начального if. Предотвращает ошибку fall-through.
def main():
x, y = 8, 8
if x < y:
st = "x is less than y"
elif x == y:
st = "x is the same as y"
else:
st = "x is greater than y"
print(st)
if __name__ == "__main__":
main()
Сжатие логики тернарным выражением
Однострочный синтаксис Python делает простые сравнения лаконичными:
def main():
x, y = 10, 8
st = "x is less than y" if x < y else "x is greater than or equal to y"
print(st)
if __name__ == "__main__":
main()
Вложенные операторы if
Вложенные условия полезны, когда решение зависит от нескольких переменных.
total = 100
country = "AU" # Смените на "US" для теста другого блока
if country == "US":
if total <= 50:
print("Shipping Cost is $50")
elif total <= 100:
print("Shipping Cost is $25")
elif total <= 150:
print("Shipping Costs $5")
else:
print("FREE")
elif country == "AU":
if total <= 50:
print("Shipping Cost is $100")
else:
print("FREE")
Эквивалент switch-case в Python
У Python нет нативного switch, но поиск в словаре даёт ту же ясность и эффективность.
def switch_example(argument):
switcher = {
0: "This is Case Zero",
1: "This is Case One",
2: "This is Case Two",
}
return switcher.get(argument, "nothing")
if __name__ == "__main__":
argument = 1
print(switch_example(argument))
Резюме
- if — выполняется, когда условие истинно.
- else — выполняется, когда предшествующий
ifложно. - elif — добавляет последовательные булевы проверки.
- Однострочные (тернарные) выражения сокращают простые сравнения.
- Вложенные
ifблоки обрабатывают многомерные решения. - Поиск в словарях обеспечивает чистую альтернативу switch-case.
Python
- Условная логика в C#: if, if-else, if-else-if и вложенные if
- Освоение оператора switch в C#: синтаксис, примеры и лучшие практики
- Освоение оператора switch-case в C++: синтаксис, работа и практические примеры
- Условные операторы в C: if, else и не только — подробное руководство
- Оператор switch в C: синтаксис, логика и практический пример
- Операторы, отступы и комментарии в Python: понятное руководство
- Мастерство условных операторов if…else в Python
- Оператор pass в Python: практическое руководство
- Оператор switch-case в C++: синтаксис, применение и практические примеры
- Функция print() в Python: практическое руководство с примерами