Python Ehdolliset lausunnot: IF…Else, ELIF & Switch Case

⚡ Älykäs yhteenveto

Python Ehdolliset lausekkeet ohjaavat ohjelmakulkua suorittamalla tiettyjä koodilohkoja vain, kun totuusarvolausekkeet antavat arvoksi tosi. Näitä ovat if, else, elif, sisäkkäinen if, kolmioperaattori ja rakenteellinen kuvioiden yhteensovitus selkeää ja päätöksentekoon perustuvaa logiikkaa varten.

  • Ydinkonsepti: Jos-lauseke suorittaa sisennettyä lohkoaan vain, kun ehto on tosi, muodostaen perustan päätöksenteolle Python.
  • Kahvan vaihtoehdot: Lisää else varapolkua varten ja elif testataksesi lisäehtoja peräkkäin ilman syvää sisäkkäisyyttä.
  • Vältä logiikkavirheitä: Käytä yhtä if-elif-else-ketjua riippumattomien if-lausekkeiden sijaan, kun tulisi päteä täsmälleen yksi tulos.
  • Kirjoita ytimekkäästi Code: Käytä kolmiosaista lauseketta value_if_true if ehto else value_if_false arvon määrittämiseksi yhdelle luettavalle riville.
  • Moderni haarautuminen: Korvaa pitkät elif-ketjut sanakirjakartallaping tai ottelutapauslauseke, joka esiteltiin kohdassa Python 3.10 puhtaamman monitievalinnan takaamiseksi.

Python Ehdolliset lausunnot

Mitä ehdolliset lausekkeet sisältävät Python?

Ehdolliset lausunnot Python suorittavat erilaisia ​​laskutoimituksia tai toimintoja riippuen siitä, onko tietty looginen rajoite tosi vai epätosi. Ne antavat ohjelman tehdä päätöksiä ja seurata eri polkuja sen sijaan, että jokainen rivi suoritettaisiin peräkkäin. Pythonehtolausekkeita käsittelee if lauseke ja sen kumppanit: else, elif ja sisäkkäinen if.

Mikä on Python Jos lausunto?

Python jos selvitys käytetään päätöksentekotoimintoihin. Se sisältää koodin, joka suoritetaan vain, kun if-lausekkeessa annettu ehto on tosi. Jos ehto on epätosi, suoritetaan sen sijaan valinnainen else-lauseke, joka sisältää else-ehdon koodin. Kun haluat toimia yhden ehdon perusteella, vaikka toinen ei ole tosi, käytät Python jos-muu lausunto.

Python jos lausekkeen syntaksi:

if expression:
    statement
else:
    statement

Python jos… muuten Vuokaavio

Python jos…muuten vuokaavio, joka näyttää tosi- ja epätosi-haarat

Yllä oleva vuokaavio näyttää, miten ohjaus kulkee if-else-lausekkeen läpi. Katsotaanpa esimerkkiä Python if-else-lauseke toiminnassa:

Python if-lauseen esimerkkituloste editorissa

# 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 Rivi 3: Määrittelemme kaksi muuttujaa x, y = 2, 8.
  • Code Rivi 4: if-lauseke tarkistaa ehdon x < y, joka on Totta tässä tapauksessa.
  • Code Rivi 5: Muuttujan st arvoksi asetetaan ”x on pienempi kuin y”.
  • Code Rivi 6: Rivi print(st) tulostaa st:n arvon, joka on ”x on pienempi kuin y”.

Mitä tapahtuu, kun "jos"-ehto ei täyty

Edellisen esimerkin pohjalta katsotaanpa, mitä tapahtuu, kun if-ehto on voimassa Python ei täyty. Kun ehto on epätosi eikä muuta haaraa ole, sisennetty koodi ohitetaan kokonaan.

Python virhe, kun if-ehto ei täyty

# 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 Rivi 3: Määrittelemme kaksi muuttujaa x, y = 8, 4.
  • Code Rivi 4: if-lauseke tarkistaa ehdon x < y, joka on Väärä tässä tapauksessa.
  • Code Rivi 5: Muuttuja st on ÄLÄ aseta "x on pienempi kuin y".
  • Code Rivi 6: Rivi print(st) yrittää tulostaa muuttujan, jota ei ole koskaan deklaroitu, joten Python nostaa a Nimivirhe.
⚠ Varoitus: Viittaaminen muuttujaan, joka on asetettu vain if-lohkon sisällä, on yleinen aloittelijan virhe. Joko luo else-haara tai anna muuttujalle oletusarvo ennen if-lausetta.

Kuinka käyttää "muuten"-ehtoa

Yllä olevan virheen välttämiseksi voit lisätä else-ehdon. Else-ehtoa käytetään, kun sinun on arvioitava yhtä lausetta toisen perusteella. Jos yksi ehto on epätosi, else-lohko tarjoaa vaihtoehtoisen polun, joten ohjelma tuottaa silti tuloksen.

Esimerkiksi:

Python esimerkki if-else-ehdosta

# 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 Rivi 3: Määrittelemme kaksi muuttujaa x, y = 8, 4.
  • Code Rivi 4: if-lauseke tarkistaa ehdon x < y, joka on Väärä tässä tapauksessa.
  • Code Rivi 6: Ohjelman ohjauksen kulku siirtyy else-ehtoon.
  • Code Rivi 7: Muuttujan st arvoksi asetetaan ”x on suurempi kuin y."
  • Code Rivi 8: Rivi print(st) tulostaa st:n arvon, joka on ”x on suurempi kuin y”.

Kun "muuten"-ehto ei toimi

Else-ehto ei aina anna haluttua tulosta. Se voi tulostaa väärän tuloksen, jos ohjelmalogiikassa on virhe. Näin tapahtuu yleensä, kun ohjelmassa on perusteltava useampi kuin kaksi lausetta tai ehtoa. Esimerkki auttaa sinua ymmärtämään tätä käsitettä.

Tässä molemmat muuttujat ovat samat (8, 8), mutta ohjelman tuloste on "x on suurempi kuin y" , joka on VÄÄRINTämä tapahtuu, koska ohjelma tarkistaa ensimmäisen ehdon (jos-ehto), ja jos se epäonnistuu, se tulostaa toisen ehdon (muuten-ehto) oletusarvoisesti. Seuraavassa vaiheessa näemme, kuinka tämä virhe korjataan.

Python muu ehto tuottaa väärän tuloksen

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

Kuinka käyttää ”elif”-ehtoa

Korjataksemme aiemmin else-ehdon tekemän virheen, voimme käyttää elif lauseke. Käyttämällä elif-ehtoa käsket ohjelmaa testaamaan kolmatta mahdollisuutta, kun ensimmäinen ehto on epätosi. Voit ketjuttaa useita elif-ehtoja tarkistaaksesi koodisi neljännen, viidennen ja muut mahdollisuudet.

Esimerkiksi:

Python esimerkki elif-ehdosta

# 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 Rivi 3: Määrittelemme kaksi muuttujaa x, y = 8, 8.
  • Code Rivi 4: if-lauseke tarkistaa ehdon x < y, joka on Väärä tässä tapauksessa.
  • Code Rivi 6: Ohjelman ohjaus siirtyy elif-ehtoon. Se tarkistaa, onko x == y, mikä on tosi.
  • Code Rivi 7: Muuttujan st arvoksi asetetaan ”x on sama kuin y. ”
  • Code Rivi 10: Ohjelman ohjaus poistuu if-lauseesta (se ei pääse else-lauseeseen) ja tulostaa st. Tulosteena on ”x on sama kuin y”, mikä on oikein.

Kuinka suorittaa ehdollinen lauseke minimaalisella Code

Nyt kun voit kirjoittaa kokonaisia ​​if-elif-else-lohkoja, Python voit tiivistää yksinkertaisen ehdon yhdelle riville. Sen sijaan, että kirjoittaisit erillisen koodin jokaiselle haaralle, voit käyttää kolmiosainen (ehdollinen) lauseke.

Syntaksi:

value_if_true if condition else value_if_false

Esimerkiksi:

Python esimerkki yhden rivin kolmiosaisesta ehdollisesta lausekkeesta

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 Rivi 2: Määrittelemme kaksi muuttujaa x, y = 10, 8.
  • Code Rivi 3: Muuttujan st arvoksi asetetaan ”x on pienempi kuin y”, jos x < y; muuten siitä tulee ”x on suurempi tai yhtä suuri kuin y”. Koska x > y tässä, st:stä ​​tulee toinen arvo.
  • Code Rivi 4: Tulostaa st:n arvon ja antaa oikean tuloksen.

Python Sisäkkäinen if-lausunto

Sisäkkäinen if-lauseke sijoittaa yhden if-lausekkeen toisen sisään, mikä on hyödyllistä, kun päätös riippuu toisesta ehdosta. Seuraava esimerkki havainnollistaa sisäkkäistä if-lauseketta Python joka laskee laivanping hinta perustuu maahan ja tilauksen kokonaissummaan.

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

Poista yllä olevan koodin rivin 2 kommentti, kommentoi rivi 3 pois ja suorita koodi uudelleen nähdäksesi, miten tuloste muuttuu eri maassa.

Vaihda tapausseloste Python

Mikä on Switch-lauseke?

Switch-lauseke on monisuuntainen haarautumislauseke, joka vertaa muuttujan arvoa case-lausekkeissa määritettyihin arvoihin. Monien vuosien ajan Python kielessä ei ollut switch-lausetta, joten kehittäjät toteuttivat saman toiminnan Python sanakirja karttaping.

Esimerkki sanakirjakartan käytöstä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))

Vaihda kirjainkokoa osumalla (Python 3.10 ja Later)

Koska Python 3.10 (julkaistu lokakuussa 2021), Python tarjoaa natiivin tulitikkukotelo lauseke, joka tunnetaan nimellä rakenteellinen hahmontunnistus. Se tarjoaa siistin ja luettavaan muotoon perustuvan vaihtoehdon pitkille elif-ketjuille ja yllä esitetylle sanakirjalähestymistavalle.

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

Alaviiva (_) toimii oletusarvoisena tapauksena ja vastaa mitä tahansa arvoa, jota aiemmat tapaukset eivät käsittele, aivan kuten perinteisen switch-lausekkeen oletusarvo.

✅ Vinkki: Käytä tulitikkurasiaa, jos olet päällä Python 3.10 tai uudempi. Vanhemmissa versioissa sanakirjakarttaping on edelleen switch-lausekkeen emuloinnin vakiotapa.

jos vs. elif vs. muu: Nopea vertailu

Käytä tätä vertailua päättääksesi, mikä ehdollinen rakenne sopii päätöksentekologiikkaasi.

LausuntoTarkoitusMilloin käyttää
ifSuorittaa lohkon, kun ehto on tosiYksi kyllä/ei-päätös
jos…muutenTarjoaa varavaihtoehdon, kun ehto on epätosiKaksi toisensa poissulkevaa lopputulosta
elifTestaa lisäehtoja peräkkäinKolme tai useampia vaihtoehtoja
Sisäkkäinen, josSijoittaa jos-merkin toisen jos-merkin sisäänPäätös, joka riippuu toisesta ehdosta
KolmiosainenTiivistää if-else-operaattorin yhdelle rivilleYksinkertainen arvonmääritys
tulitikkukoteloVastaa arvoa useiden mallien kanssaMonitiehaarautuminen (Python 3.10 +)
⚠ Huomautus: Python 2 saavutti käyttöikänsä lopun 1. tammikuuta 2020, ja kaikissa tämän artikkelin esimerkeissä käytetään Python 3 syntaksi. Sisään Python 2, print oli lauseke (esimerkiksi print st) eikä funktio, joten yllä oleva koodi ei toimi muuttumattomana Python 2.

UKK

Jos-lauseke aloittaa päätöksenteon ja se evaluoidaan aina. Elif-lauseketta (else-if) tarkistetaan vain, kun edeltävät jos- tai elif-ehdot ovat epätosia, jolloin voit testata useita mahdollisuuksia yhdessä ketjussa samalla, kun täsmälleen yksi lohko suoritetaan.

Kyllä. Koska Python Versiossa 3.10 match-case-lauseke tarjoaa natiivin switch-tyylisen haarautumisen rakenteellisen kuvioiden yhteensovituksen avulla. Vanhemmissa versioissa kehittäjät emuloivat switchiä sanakirjakartan avulla.ping get()-metodilla oletusarvon syöttämiseksi.

Käytä kolmikomponenttista lauseketta: value_if_true if ehto else arvo_if_false. Esimerkiksi st = “low” if x < 10 else “high” määrittää arvon yhdelle luettavalle riville ilman täyttä if-else-lohkoa.

Kyllä. Tekoälykoodausavustajat voivat luoda, selittää ja debugata if-elif-else-logiikkaa selkokielisestä kehotteesta. Ne ovat hyödyllisiä oppimisen kannalta, mutta sinun tulisi silti tarkistaa tuloste varmistaaksesi, että ehdot ja sisennys vastaavat tarkoitettua logiikkaa.

Kyllä. Ehdollinen logiikka on tekoälyn perusta. Päätöspuut, sääntöpohjaiset järjestelmät ja datan esikäsittelyputket käyttävät kaikki if-else-haarautumista valitakseen toimintoja, suodattaakseen dataa ja hallitakseen sitä, miten malli käsittelee eri syötteitä.

Tiivistä tämä viesti seuraavasti: