Python Условни изрази: IF…Else, ELIF & Switch Case
⚡ Умно обобщение
Python Условните оператори насочват потока на програмата, като изпълняват специфични кодови блокове само когато булеви изрази се оценят като true. Те включват if, else, elif, вложен if, тернарен оператор и структурно съпоставяне на шаблони за чиста, ориентирана към решения логика.

Какво представляват условните изрази Python?
Условни изрази в Python извършват различни изчисления или действия в зависимост от това дали дадено булево ограничение се оценява като истина или неистина. Те позволяват на програмата да взема решения и да следва различни пътища, вместо да изпълнява всеки ред последователно. В Python, условните оператори се обработват от if оператор и неговите съпътстващи оператори: else, elif и вложени if.
Какво е Python Ако изявление?
- Python if изявление се използва за операции за вземане на решения. Съдържа набор от код, който се изпълнява само когато условието, дадено в оператора if, е вярно. Ако условието е невярно, се изпълнява опционалният оператор else, който съдържа кода за условието else. Когато искате да действате по едно условие, докато друго не е вярно, използвате Python оператор if-else.
Python Синтаксис на израза if:
if expression:
statement
else:
statement
Python if… else Блок-схема
Блок-схемата по-горе показва как управлението протича чрез if-else оператор. Нека видим пример за Python if-else оператор в действие:
# Example file for working with conditional statements
def main():
x, y = 2, 8
if(x < y):
st = "x is less than y"
print(st)
if __name__ == "__main__":
main()
- Code Ред 3: Дефинираме две променливи x, y = 2, 8.
- Code Ред 4: Изразът if проверява условието x < y, което е Вярно в такъв случай.
- Code Ред 5: Променливата st е зададена на „x е по-малко от y“.
- Code Ред 6: Редът print(st) извежда стойността на st, която е „x е по-малко от y“.
Какво се случва, когато условието „ако“ не е изпълнено
Надграждайки върху предишния пример, нека видим какво се случва, когато условието if в Python не е изпълнено. Когато условието е невярно и не съществува клон else, кодът с отстъп се пропуска изцяло.
# Example file for working with conditional statements
def main():
x, y = 8, 4
if(x < y):
st = "x is less than y"
print(st)
if __name__ == "__main__":
main()
- Code Ред 3: Дефинираме две променливи x, y = 8, 4.
- Code Ред 4: Изразът if проверява условието x < y, което е Фалшив в такъв случай.
- Code Ред 5: Променливата st е НЕ настроен на „x е по-малко от y“.
- Code Ред 6: Редът print(st) се опитва да отпечата променлива, която никога не е била декларирана, така че Python повдига NameError.
Как да използваме условието „else“
За да избегнете горната грешка, можете да добавите условие else. Условието else се използва, когато трябва да прецените едно твърдение въз основа на друго. Ако едно условие е невярно, блокът else предоставя алтернативен път, така че програмата все пак да генерира резултат.
Пример:
# Example file for working with conditional statements
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()
- Code Ред 3: Дефинираме две променливи x, y = 8, 4.
- Code Ред 4: Изразът if проверява условието x < y, което е Фалшив в такъв случай.
- Code Ред 6: Потокът от програмен контрол отива към условието else.
- Code Ред 7: Променливата st е зададена на „x е по-голяма отколкото y."
- Code Ред 8: Редът print(st) извежда стойността на st, която е „x е по-голямо от y“.
Когато условието „иначе“ не работи
Условието else не винаги ще ви даде желания резултат. То може да отпечата грешен изход, когато има недостатък в логиката на програмата. Това обикновено се случва, когато трябва да обосновете повече от две твърдения или условия в една програма. Един пример ще ви помогне да разберете тази концепция.
Тук и двете променливи са еднакви (8, 8), но изходът на програмата е „x е по-голямо от y“ , което е ГРЕШНОТова се случва, защото програмата проверява първото условие (условието if) и когато то е неуспешно, отпечатва второто условие (условието else) като условие по подразбиране. В следващата стъпка ще видим как да коригираме тази грешка.
# Example file for working with conditional statements
def main():
x, y = 8, 8
if(x < y):
st = "x is less than y"
else:
st = "x is greater than y"
print(st)
if __name__ == "__main__":
main()
Как да използваме условието „elif“
За да коригираме предишната грешка, допусната от условието else, можем да използваме Елиф оператор. Чрез използване на условието elif, вие казвате на програмата да тества трета възможност, когато първото условие е невярно. Можете да свържете множество elif условия, за да проверите за четвърта, пета и следващи възможности във вашия код.
Пример:
# Example file for working with conditional statements
def main():
x, y = 8, 8
if(x < y):
st = "x is less than y"
elif(x == y):
st = "x is same as y"
else:
st = "x is greater than y"
print(st)
if __name__ == "__main__":
main()
- Code Ред 3: Дефинираме две променливи x, y = 8, 8.
- Code Ред 4: Изразът if проверява условието x < y, което е Фалшив в такъв случай.
- Code Ред 6: Потокът от управление на програмата отива към условието elif. Проверява се дали x == y, което е вярно.
- Code Ред 7: Променливата st е зададена на „x е същите като г.”
- Code Ред 10: Програмният контрол излиза от if оператора (няма да достигне до else оператора) и отпечатва st. Изходът е „x е същото като y“, което е правилно.
Как да изпълним условно изявление с Minimal Code
Сега, след като можете да пишете пълни if-elif-else блокове, Python ви позволява да кондензирате просто условие в един ред. Вместо да пишете отделен код за всеки клон, можете да използвате троичен (условен) израз.
Синтаксис:
value_if_true if condition else value_if_false
Пример:
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()
- Code Ред 2: Дефинираме две променливи x, y = 10, 8.
- Code Ред 3: Променливата st се задава на „x е по-малко от y“, ако x < y; в противен случай става „x е по-голямо или равно на y“. Тъй като тук x > y, st става втората стойност.
- Code Ред 4: Отпечатва стойността на st и дава правилния изход.
Python Вложен оператор if
Вложен if оператор поставя един if оператор вътре в друг, което е полезно, когато решението зависи от второ условие. Следващият пример демонстрира вложен if оператор в Python който изчислява корабаping цена въз основа на държавата и общата сума на поръчката.
total = 100
# country = "US"
country = "AU"
if country == "US":
if total <= 50:
print("Shipping Cost is $50")
elif total <= 100:
print("Shipping Cost is $25")
elif total <= 150:
print("Shipping Cost is $5")
else:
print("FREE")
if country == "AU":
if total <= 50:
print("Shipping Cost is $100")
else:
print("FREE")
Разкоментирайте ред 2 в горния код, коментирайте ред 3 и изпълнете кода отново, за да видите как се променя резултатът за различна държава.
Превключете Case Statement в Python
Какво е оператор за превключване?
Операторът switch е многопосочен оператор за разклонение, който сравнява стойността на променлива със стойностите, посочени в операторите case. В продължение на много години Python езикът нямаше оператор switch, така че разработчиците имплементираха същото поведение с Python речник картаping.
Пример с използване на речникова картаping:
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))
Сменяем калъф със съвпадение (Python 3.10 и Later)
Тъй като Python 3.10 (издадена през октомври 2021 г.), Python предоставя местен кибритена кутия оператор, известен като структурно съпоставяне на шаблони. Той предлага чиста и четлива алтернатива на дългите elif вериги и речниковия подход, показан по-горе.
def switch_example(argument):
match argument:
case 0:
return "This is Case Zero"
case 1:
return "This is Case One"
case 2:
return "This is Case Two"
case _:
return "nothing"
if __name__ == "__main__":
print(switch_example(1))
Долната черта (_) действа като регистър по подразбиране, съответстващ на всяка стойност, която не се обработва от по-ранните регистъри, точно както по подразбиране в традиционния оператор switch.
if срещу elif срещу else: Бързо сравнение
Използвайте това сравнение, за да определите коя условна структура отговаря на вашата логика за вземане на решения.
| Изявление | Цел | Кога да използвате |
|---|---|---|
| if | Изпълнява блок, когато условието е вярно | Еднократно решение „да“/„не“ |
| ако…иначе | Осигурява резервен вариант, когато условието е невярно | Два взаимно изключващи се резултата |
| Елиф | Тества допълнителни условия последователно | Три или повече възможности |
| Вложено ако | Поставя if вътре в друг if | Решение, което зависи от второ условие |
| Тройна | Кондензира if-else в един ред | Просто присвояване на стойност |
| кибритена кутия | Съпоставя стойност с много шаблони | Многопосочно разклоняване (Python 3.10 +) |







