Python Feltételes nyilatkozatok: IF…Else, ELIF és Switch Case

⚡ Okos összefoglaló

Python A feltételes utasítások (Feltételes utasítások) irányítják a programfolyamatot azáltal, hogy csak bizonyos kódblokkokat hajtanak végre, ha a logikai kifejezések kiértékelése igaz eredményt ad. Ilyenek például az if, else, elif, a beágyazott if, a ternáris operátor és a strukturális mintaillesztés a tiszta, döntésvezérelt logika érdekében.

  • Alapkoncepció: Egy if utasítás csak akkor futtatja le a behúzott blokkját, ha a feltétel igaznak értékelődik ki, ami a döntéshozatal alapját képezi. Python.
  • Alternatív fogantyúk: Adj hozzá else-t egy tartalék elérési úthoz, és elif-et további feltételek teszteléséhez sorban, mély beágyazás nélkül.
  • Kerüld a logikai hibákat: Használjon egyetlen if-elif-else láncot független if utasítások helyett, ha pontosan egy eredménynek kell érvényesülnie.
  • Írj tömören Code: Alkalmazd a value_if_true ternáris kifejezést, ha feltétel egyébként a value_if_false, hogy egyetlen olvasható sorban rendelj hozzá értéket.
  • Modern elágazás: Hosszú elif láncok cseréje szótártérképreping vagy a ...-ban bevezetett egyezés-eset állítás Python 3.10 a tisztább többutas kiválasztáshoz.

Python Feltételes nyilatkozatok

Mik tartalmazzák a feltételes nyilatkozatokat Python?

Feltételes nyilatkozatok be Python különböző számításokat vagy műveleteket hajtanak végre attól függően, hogy egy adott logikai kényszer igaznak vagy hamisnak bizonyul-e. Lehetővé teszik a program számára, hogy döntéseket hozzon és különböző útvonalakat kövessen ahelyett, hogy minden sort sorban lefuttatna. Python, a feltételes utasításokat a if utasítás és társai: else, elif és beágyazott if.

Mi a Python Ha Nyilatkozat?

Az Python ha nyilatkozat döntéshozatali műveletekhez használják. Egy olyan kódrészletet tartalmaz, amely csak akkor fut le, ha az if utasításban megadott feltétel igaz. Ha a feltétel hamis, akkor az opcionális else utasítás fut le, amely az else feltétel kódját tartalmazza. Ha egy feltétel alapján szeretnél cselekedni, miközben egy másik nem igaz, akkor a Python ha-más kijelentés.

Python if utasítás szintaxis:

if expression:
    statement
else:
    statement

Python ha…egyéb Folyamatábra

Python ha…különben folyamatábra, amely az igaz és hamis ágakat mutatja

A fenti folyamatábra azt mutatja be, hogyan zajlik a vezérlés egy if-else utasításon keresztül. Nézzünk egy példát a következőre: Python if-else utasítás működés közben:

Python if utasítás példa kimenet a szerkesztőben

# 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 vonal: Két változót definiálunk: x, y = 2, 8.
  • Code 4 vonal: Az if utasítás az x < y feltételt ellenőrzi, ami a következő: Igaz ebben az esetben.
  • Code 5 vonal: Az st változó értéke „x kisebb, mint y”.
  • Code 6 vonal: A print(st) sor kimenete az st értéke, ami a következő: „x kisebb, mint y”.

Mi történik, ha a „ha” feltétel nem teljesül?

Az előző példára építve nézzük meg, mi történik, ha a feltétel teljesül: Python nem teljesül. Amikor a feltétel hamis, és nincs más ág, a behúzott kód teljesen kimarad.

Python hiba, ha az if feltétel nem teljesül

# 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 vonal: Két változót definiálunk: x, y = 8, 4.
  • Code 4 vonal: Az if utasítás az x < y feltételt ellenőrzi, ami a következő: Hamis ebben az esetben.
  • Code 5 vonal: Az st változó a következő: NEM állítsa „x kisebb, mint y”.
  • Code 6 vonal: A print(st) sor egy soha nem deklarált változó kinyomtatására törekszik, tehát Python felveti a NameError.
⚠ Figyelmeztetés: Egy olyan változóra hivatkozni, amely csak egy if blokkon belül van értékadva, gyakori kezdő hiba. Vagy egy else ágat kell létrehozni, vagy a változónak egy alapértelmezett értéket kell adni az if utasítás előtt.

Hogyan használjuk az „else” feltételt

A fenti hiba elkerülése érdekében hozzáadhatsz egy „else” feltételt. Az „else” feltételt akkor használjuk, ha egy állítást egy másik alapján kell megítélnünk. Ha az egyik feltétel hamis, az „else” blokk egy alternatív utat biztosít, így a program továbbra is eredményt produkál.

Példa:

Python if-else feltételre példa

# 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 vonal: Két változót definiálunk: x, y = 8, 4.
  • Code 4 vonal: Az if utasítás az x < y feltételt ellenőrzi, ami a következő: Hamis ebben az esetben.
  • Code 6 vonal: A programvezérlés folyamata az „else” feltételhez kapcsolódik.
  • Code 7 vonal: Az st változót „x is” értékre állítjuk. nagyobb mint y.”
  • Code 8 vonal: A print(st) sor kimenete az st értéke, ami a következő: „x nagyobb, mint y”.

Amikor az „egyébként” feltétel nem működik

Az „else” feltétel nem mindig adja a kívánt eredményt. Hibás kimenetet adhat, ha hiba van a programlogikában. Ez általában akkor fordul elő, ha egy programban kettőnél több utasítást vagy feltételt kell igazolni. Egy példa segít megérteni ezt a koncepciót.

Itt mindkét változó ugyanaz (8, 8), mégis a program kimenete „x nagyobb, mint y” amely ROSSZEz azért történik, mert a program ellenőrzi az első feltételt (az „ha” feltételt), és ha az nem sikerül, akkor a második feltételt (az „else” feltételt) írja ki alapértelmezettként. A következő lépésben megnézzük, hogyan javíthatjuk ki ezt a hibát.

Python egyébként helytelen eredményt adó feltétel

# 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()

Az „elif” feltétel használata

Az else feltétel által elkövetett korábbi hiba kijavításához használhatjuk a következőt: elif utasítás. Az elif feltétel használatával azt mondod a programnak, hogy teszteljen egy harmadik lehetőséget, amikor az első feltétel hamis. Több elif feltételt láncba köthetsz a kódodban a negyedik, ötödik és további lehetőségek ellenőrzéséhez.

Példa:

Python elif feltétel példa

# 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 vonal: Két változót definiálunk: x, y = 8, 8.
  • Code 4 vonal: Az if utasítás az x < y feltételt ellenőrzi, ami a következő: Hamis ebben az esetben.
  • Code 6 vonal: A programvezérlés folyamata az elif feltételhez vezet. Ellenőrzi, hogy x == y, ami igaz-e.
  • Code 7 vonal: Az st változót „x is” értékre állítjuk. ugyanaz, mint a y.”
  • Code 10 vonal: A program kilép az if utasításból (nem éri el az else utasítást) és kinyomtatja az st értéket. A kimenet „x megegyezik az y-nal”, ami helyes.

Hogyan hajtsunk végre egy feltételes utasítást minimális értékkel? Code

Most, hogy teljes if-elif-else blokkokat írhatsz, Python lehetővé teszi egy egyszerű feltétel egyetlen sorba sűrítését. Ahelyett, hogy minden ághoz külön kódot írna, használhat egy ternáris (feltételes) kifejezés.

Syntax:

value_if_true if condition else value_if_false

Példa:

Python egysoros háromkomponensű feltételes utasítás példa

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 vonal: Két változót definiálunk: x, y = 10, 8.
  • Code 3 vonal: Az st változó értéke „x kisebb, mint y” lesz, ha x < y; egyébként „x nagyobb vagy egyenlő, mint y” lesz. Mivel x > y itt, az st lesz a második érték.
  • Code 4 vonal: Kiírja az st értékét és a helyes kimenetet adja.

Python Beágyazott if nyilatkozat

Egy beágyazott if utasítás egy if utasítást helyez el egy másikban, ami akkor hasznos, ha egy döntés egy második feltételtől függ. A következő példa egy beágyazott if utasítást mutat be a következőben: Python amely kiszámítja a hajótping az ár az országtól és a rendelés összegétől függ.

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")

Töröld a fenti kód 2. sorának kommentjét, kommenteld ki a 3. sort, és futtasd újra a kódot, hogy lásd, hogyan változik a kimenet egy másik ország esetén.

Kapcsolja be az esetkimutatást Python

Mi az a Switch utasítás?

A switch utasítás egy többutas elágazási utasítás, amely összehasonlítja egy változó értékét a case utasításokban megadott értékekkel. Sok éven át a Python a nyelvben nem volt switch utasítás, így a fejlesztők ugyanazt a viselkedést valósították meg a következővel: Python szótár térképping.

Példa szótártérkép használatávalping:

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))

Kis- és nagybetűváltás egyezéssel (Python 3.10 és Later)

Óta Python 3.10 (megjelent 2021 októberében), Python anyanyelvi szintű gyufatartó utasítás, más néven strukturális mintaillesztés. Tiszta, olvasható alternatívát kínál a hosszú elif láncokkal és a fent bemutatott szótáras megközelítéssel szemben.

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))

Az aláhúzásjel (_) az alapértelmezett esetként működik, és minden olyan értékkel egyezik, amelyet a korábbi esetek nem kezeltek, akárcsak a hagyományos switch utasítás alapértelmezett értéke.

✅ Tipp: Használj gyufásdobozt, ha be vagy kapcsolva Python 3.10 vagy újabb. Régebbi verziókhoz szótártérképping továbbra is a switch utasítás emulálásának standard módja.

if vs elif vs else: Gyors összehasonlítás

Használd ezt az összehasonlítást annak eldöntésére, hogy melyik feltételes szerkezet illik a döntéshozatali logikádhoz.

nyilatkozatCélMikor kell használni?
ifFuttat egy blokkot, ha egy feltétel igazEgyetlen igen/nem döntés
ha…különbenTartalék megoldást kínál, ha a feltétel hamis.Két egymást kizáró eredmény
elifTovábbi feltételeket tesztel sorbanHárom vagy több lehetőség
Beágyazott, haEgy if-t egy másik if-be helyezEgy döntés, amely egy második feltételtől függ
HármasAz if-else utasításokat egyetlen sorba sűrítiEgyszerű értékadás
gyufatartóEgy értéket több mintával hasonlít összeTöbbutas elágazás (Python 3.10 +)
⚠ Megjegyzés: Python 2 darab 2020. január 1-jén érte el az élettartama végét, és a cikkben szereplő összes példa ezt használja Python 3 szintaxis. Be Python 2, a print egy utasítás volt (például print st), nem pedig függvény, így a fenti kód nem fog változatlanul lefutni a következőn: Python 2.

GYIK

Az if utasítás döntést indít, és mindig kiértékelődik. Az elif (else-if) utasítás csak akkor kerül ellenőrzésre, ha az előző if vagy elif feltételek hamisak, így több lehetőséget is tesztelhetünk egy láncban, miközben pontosan egy blokk fut.

Igen. Mivel Python A 3.10-es verzióban a match-case utasítás natív switch stílusú elágazást biztosít strukturális mintaillesztésen keresztül. Régebbi verziókban a fejlesztők szótártérkép segítségével emulálják a switchet.ping a get() metódussal egy alapértelmezett értéket adunk meg.

Használjon egy háromkomponensű kifejezést: value_if_true if feltétel, else érték_if_false. Például, ha st = „low”, ha x < 10, else pedig „high”, akkor egyetlen olvasható sorban rendel hozzá értéket teljes if-else blokk nélkül.

Igen. A mesterséges intelligencia által fejlesztett kódolási asszisztensek képesek egyszerű nyelvi promptokból generálni, magyarázni és hibakeresni az if-elif-else logikát. Hasznosak a tanuláshoz, de továbbra is érdemes áttekinteni a kimenetet, hogy megbizonyosodj arról, hogy a feltételek és a behúzás megfelelnek-e a kívánt logikának.

Igen. A feltételes logika alapvető fontosságú a mesterséges intelligenciában. A döntési fák, a szabályalapú rendszerek és az adat-előfeldolgozó folyamatok mind az if-else elágazásokra támaszkodnak a műveletek kiválasztásához, az adatok szűréséhez és a modell különböző bemenetek kezelésének szabályozásához.

Foglald össze ezt a bejegyzést a következőképpen: