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.

  • Osnovni koncept: Naredba if izvršava svoj uvučeni blok samo kada se uvjet isplati kao istinit, tvoreći temelj donošenja odluka u Python.
  • Alternative za rukovanje: Dodajte else za rezervni put i elif za testiranje dodatnih uvjeta u nizu bez dubokog ugniježđivanja.
  • Izbjegavajte logičke pogreške: Koristite jedan if-elif-else lanac umjesto neovisnih if naredbi kada se treba primijeniti točno jedan ishod.
  • Pišite sažeto Code: Primijenite ternarni izraz value_if_true ako je uvjet else value_if_false za dodjeljivanje vrijednosti u jednom čitljivom retku.
  • Moderno grananje: Zamijenite duge elif lance mapom rječnikaping ili naredbu o podudaranju velikih i malih slova uvedenu u Python 3.10 za čišći višesmjerni odabir.

Python Uvjetne izjave

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

Python ako...inače dijagram toka koji prikazuje true i false grane

Gornji dijagram toka prikazuje kako kontrola teče kroz if-else naredbu. Pogledajmo primjer Python if-else naredba u akciji:

Python primjer ispisa if naredbe u editoru

# 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.

Python greška kada uvjet if nije ispunjen

# 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.
⚠ Upozorenje: Pozivanje varijable koja je dodijeljena samo unutar if bloka česta je početnička pogreška. Ili navedite else granu ili dajte varijabli zadanu vrijednost prije if naredbe.

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:

Python primjer uvjeta if-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 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.

Python inače uvjet daje pogrešan rezultat

# 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:

Python primjer uvjeta 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 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:

Python primjer ternarne uvjetne naredbe u jednom retku

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.

✅ Savjet: Koristite podudaranje velikih i malih slova ako ste uključeni Python 3.10 ili noviji. Za starije verzije, karta rječnikaping ostaje standardni način emulacije switch naredbe.

if vs elif vs else: Brza usporedba

Pomoću ove usporedbe odlučite koja uvjetna struktura odgovara vašoj logici donošenja odluka.

IzjavaSvrhaKada koristiti
ifPokreće blok kada je uvjet istinitJedna odluka da/ne
ako…inačePruža rezervnu opciju kada je uvjet lažanDva međusobno isključiva ishoda
ElifTestira dodatne uvjete u nizuTri ili više mogućnosti
Ugniježđeno akoSmješta if unutar drugog if-aOdluka koja ovisi o drugom uvjetu
TrostrukiSažima if-else u jedan redakJednostavno dodjeljivanje vrijednosti
kutija za šibiceUspoređuje vrijednost s mnogim uzorcimaVišesmjerno grananje (Python 3.10 +)
⚠ Napomena: Python 2 je dosegao kraj životnog vijeka 1. siječnja 2020., a svi primjeri u ovom članku koriste Python 3 sintaksa. U Python 2, print je bila naredba (na primjer, print st) a ne funkcija, tako da se gornji kod neće izvršavati nepromijenjen na Python 2.

Pitanja i odgovori

Naredba if započinje donošenje odluke i uvijek se evaluira. Elif (inače-ako) se provjerava samo kada su prethodni uvjeti if ili elif netočni, što vam omogućuje testiranje nekoliko mogućnosti u jednom lancu dok se izvršava točno jedan blok.

Da. Od Python 3.10, naredba match-case omogućuje izvorno grananje u stilu switcha putem strukturnog podudaranja uzoraka. U starijim verzijama, programeri emuliraju switch pomoću mape rječnika.ping s metodom get() za dodjelu zadane vrijednosti.

Koristite ternarni izraz: vrijednost_ako_je_istinito ako je uvjet inače vrijednost_ako_je_neistinito. Na primjer, st = „nisko“ ako je x < 10 inače „visoko“ dodjeljuje vrijednost u jednom čitljivom retku bez cijelog if-else bloka.

Da. AI asistenti za kodiranje mogu generirati, objasniti i otkloniti pogreške u if-elif-else logiku iz jednostavnog prompta. Korisni su za učenje, ali ipak biste trebali pregledati izlaz kako biste potvrdili da uvjeti i uvlačenje odgovaraju vašoj željenoj logici.

Da. Uvjetna logika je temeljna za umjetnu inteligenciju. Stabla odlučivanja, sustavi temeljeni na pravilima i cjevovodi za predobradu podataka oslanjaju se na grananje po principu "ako-inače" za odabir radnji, filtriranje podataka i kontrolu načina na koji model obrađuje različite ulaze.

Sažmite ovu objavu uz: