Python Uvjetni iskazi: IF…Else, ELIF & Switch Case
⚡ Pametni sažetak
Python Uvjetne naredbe usmjeravaju tok programa izvršavanjem određenih blokova koda samo kada se logički izrazi evaluiraju kao istiniti. Uključuju if, else, elif, ugniježđeni if, ternarni operator i strukturno usklađivanje uzoraka za čistu logiku vođenu odlučivanjem.

U čemu su uvjetni iskazi Python?
Uvjetne izjave u Python izvode različite izračune ili radnje ovisno o tome je li određeno Booleovo ograničenje istinito ili netočno. Omogućuju programu donošenje odluka i praćenje različitih putova umjesto izvođenja svakog retka u nizu. U Python, uvjetne naredbe obrađuje if naredba i njezini pratitelji: else, elif i ugniježđeni if.
Što je Python Ako izjava?
The Python ako izjava koristi se za operacije donošenja odluka. Sadrži tijelo koda koje se izvršava samo kada je uvjet zadan u naredbi if istinit. Ako je uvjet neistinit, umjesto njega se izvršava opcionalna naredba else koja sadrži kod za uvjet else. Kada želite djelovati na temelju jednog uvjeta dok drugi nije istinit, koristite naredbu Python izjava if-else.
Python sintaksa naredbe if:
if expression:
statement
else:
statement
Python if…else Dijagram toka
Gornji dijagram toka prikazuje kako kontrola teče kroz if-else naredbu. Pogledajmo primjer Python if-else naredba u akciji:
# 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 Redak 3: Definiramo dvije varijable x, y = 2, 8.
- Code Redak 4: Naredba if provjerava uvjet x < y, koji je Pravi u ovom slučaju.
- Code Redak 5: Varijabla st je postavljena na „x je manje od y“.
- Code Redak 6: Linijska funkcija print(st) ispisuje vrijednost st, koja je „x je manje od y“.
Što se događa kada uvjet "ako" nije ispunjen
Nadovezujući se na prethodni primjer, pogledajmo što se događa kada je uvjet if u Python nije ispunjen. Kada je uvjet lažan i ne postoji grana else, uvučeni kod se u potpunosti preskače.
# 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 Redak 3: Definiramo dvije varijable x, y = 8, 4.
- Code Redak 4: Naredba if provjerava uvjet x < y, koji je Lažan u ovom slučaju.
- Code Redak 5: Varijabla st je NE postavite na "x je manje od y."
- Code Redak 6: Redak print(st) pokušava ispisati varijablu koja nikada nije deklarirana, pa Python podiže NameError.
Kako koristiti uvjet "else"
Kako biste izbjegli gornju pogrešku, možete dodati uvjet else. Uvjet else se koristi kada morate procijeniti jednu izjavu na temelju druge. Ako je jedan uvjet lažan, blok else pruža alternativni put tako da program i dalje proizvodi rezultat.
Primjer:
# 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 Redak 3: Definiramo dvije varijable x, y = 8, 4.
- Code Redak 4: Naredba if provjerava uvjet x < y, koji je Lažan u ovom slučaju.
- Code Redak 6: Tok upravljanja programom ide prema uvjetu else.
- Code Redak 7: Varijabla st je postavljena na „x je veća nego ti.”
- Code Redak 8: Linijska funkcija print(st) ispisuje vrijednost st, koja je „x je veći od y“.
Kada uvjet "inače" ne funkcionira
Uvjet else neće uvijek dati željeni rezultat. Može ispisati pogrešan izlaz kada postoji greška u programskoj logici. To se obično događa kada morate opravdati više od dvije izjave ili uvjeta u programu. Primjer će vam pomoći da shvatite ovaj koncept.
Ovdje su obje varijable iste (8, 8), ali izlaz programa je „x je veći od y“, koja je KRIVOTo se događa jer program provjerava prvi uvjet (uvjet if), a kada ne uspije, ispisuje drugi uvjet (uvjet else) kao zadani. U sljedećem koraku vidjet ćemo kako ispraviti ovu pogrešku.
# 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()
Kako koristiti uvjet "elif"
Da bismo ispravili prethodnu grešku koju je napravio uvjet else, možemo koristiti Elif naredba. Korištenjem elif uvjeta, govorite programu da testira treću mogućnost kada je prvi uvjet lažan. Možete povezati više elif uvjeta kako biste provjerili četvrtu, petu i daljnje mogućnosti u svom kodu.
Primjer:
# 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 Redak 3: Definiramo dvije varijable x, y = 8, 8.
- Code Redak 4: Naredba if provjerava uvjet x < y, koji je Lažan u ovom slučaju.
- Code Redak 6: Tijek upravljanja programom ide prema uvjetu elif. Provjerava se je li x == y, što je istina.
- Code Redak 7: Varijabla st je postavljena na „x je isto kao y.”
- Code Redak 10: Programska kontrola izlazi iz if naredbe (neće doći do else naredbe) i ispisuje st. Izlaz je „x je isti kao y“, što je točno.
Kako izvršiti uvjetnu naredbu s minimalnim Code
Sada kada možete pisati pune if-elif-else blokove, Python omogućuje vam sažimanje jednostavnog uvjeta u jedan redak. Umjesto pisanja zasebnog koda za svaku granu, možete koristiti ternarni (uvjetni) izraz.
Sintaksa:
value_if_true if condition else value_if_false
Primjer:
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 Redak 2: Definiramo dvije varijable x, y = 10, 8.
- Code Redak 3: Varijabla st se postavlja na „x je manji od y“ ako je x < y; inače postaje „x je veći ili jednak y“. Budući da je ovdje x > y, st postaje druga vrijednost.
- Code Redak 4: Ispisuje vrijednost st i daje ispravan izlaz.
Python Ugniježđena if izjava
Ugniježđena if naredba smješta jednu if naredbu unutar druge, što je korisno kada odluka ovisi o drugom uvjetu. Sljedeći primjer demonstrira ugniježđenu if naredbu u Python koji izračunava brodping cijena na temelju zemlje i ukupnog iznosa narudžbe.
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")
U gornjem kodu uklonite komentare iz retka 2, komentirajte redak 3 i ponovno pokrenite kod kako biste vidjeli kako se izlaz mijenja za drugu zemlju.
Uključite izjavu slučaja Python
Što je Switch izjava?
Naredba switch je naredba višestrukog grananja koja uspoređuje vrijednost varijable s vrijednostima navedenim u naredbama case. Dugi niz godina, Python jezik nije imao naredbu switch, pa su programeri implementirali isto ponašanje s Python rječnik kartaping.
Primjer korištenja rječničke karteping:
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))
Promijeni slučaj s podudarnošću (Python 3.10 i Later)
Od Python 3.10 (objavljeno u listopadu 2021.), Python pruža izvorni kutija za šibice izjava, poznata kao strukturno podudaranje uzoraka. Nudi čistu, čitljivu alternativu dugim elif lancima i gore prikazanom pristupu rječnika.
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))
Podvlaka (_) djeluje kao zadani slučaj, podudarajući se s bilo kojom vrijednošću koju nisu obradili prethodni slučajevi, baš kao i zadana vrijednost u tradicionalnoj naredbi switch.
if vs elif vs else: Brza usporedba
Pomoću ove usporedbe odlučite koja uvjetna struktura odgovara vašoj logici donošenja odluka.
| Izjava | Svrha | Kada koristiti |
|---|---|---|
| if | Pokreće blok kada je uvjet istinit | Jedna odluka da/ne |
| ako…inače | Pruža rezervnu opciju kada je uvjet lažan | Dva međusobno isključiva ishoda |
| Elif | Testira dodatne uvjete u nizu | Tri ili više mogućnosti |
| Ugniježđeno ako | Smješta if unutar drugog if-a | Odluka koja ovisi o drugom uvjetu |
| Trostruki | Sažima if-else u jedan redak | Jednostavno dodjeljivanje vrijednosti |
| kutija za šibice | Uspoređuje vrijednost s mnogim uzorcima | Višesmjerno grananje (Python 3.10 +) |







