Python Betingede erklæringer: IF…Else, ELIF & Switch Case

⚡ Smart oppsummering

Python Betingelsessetninger styrer programflyten ved å utføre spesifikke kodeblokker bare når boolske uttrykk evalueres til sann. De inkluderer if, else, elif, nestet if, den ternære operatoren og strukturell mønstermatching for ren, beslutningsdrevet logikk.

  • Kjernekonsept: En if-setning kjører sin innrykkede blokk bare når betingelsen evalueres til sann, og danner grunnlaget for beslutningstaking i Python.
  • Håndter alternativer: Legg til else for en reservesti og elif for å teste flere betingelser i rekkefølge uten dyp nestering.
  • Unngå logiske feil: Bruk en enkelt if-elif-else-kjede i stedet for uavhengige if-setninger når nøyaktig ett utfall skal gjelde.
  • Skriv konsist Code: Bruk det ternære uttrykket value_if_true if condition else value_if_false for å tilordne en verdi på én lesbar linje.
  • Moderne forgrening: Erstatt lange elif-kjeder med ordbokkartping eller match-case-setningen introdusert i Python 3.10 for renere flerveisvalg.

Python Betingede uttalelser

Hva er betingede erklæringer i Python?

Betingede erklæringer i Python utføre forskjellige beregninger eller handlinger avhengig av om en spesifikk boolsk begrensning evalueres til sann eller usann. De lar et program ta avgjørelser og følge forskjellige baner i stedet for å kjøre hver linje i rekkefølge. I Python, betingede utsagn håndteres av if uttalelse og dens ledsagere: else, elif og nested if.

Hva er Python Hvis uttalelse?

Ocuco Python hvis uttalelse brukes til beslutningstaking. Den inneholder en mengde kode som bare kjører når betingelsen gitt i if-setningen er sann. Hvis betingelsen er usann, kjøres den valgfrie else-setningen i stedet, og inneholder koden for else-betingelsen. Når du vil handle på én betingelse mens en annen ikke er sann, bruker du Python if-else-uttalelse.

Python if Statement Syntaks:

if expression:
    statement
else:
    statement

Python hvis ... annet Flytskjema

Python hvis…ellers flytskjema som viser grenene sann og usann

Flytskjemaet ovenfor viser hvordan kontrollen flyter gjennom en if-else-setning. La oss se et eksempel på det. Python if-else-setning i aksjon:

Python Eksempel på utdata for if-setning i editoren

# 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 Linje 3: Vi definerer to variabler x, y = 2, 8.
  • Code Linje 4: Hvis-setningen sjekker betingelsen x < y, som er ekte i dette tilfellet.
  • Code Linje 5: Variabelen st settes til «x er mindre enn y».
  • Code Linje 6: Linjen print(st) sender ut verdien av st, som er «x er mindre enn y».

Hva skjer når «hvis»-betingelsen ikke er oppfylt

La oss, basert på det forrige eksemplet, se hva som skjer når hvis-betingelsen i Python ikke er oppfylt. Når betingelsen er usann og ingen annen gren finnes, hoppes den innrykkede koden helt over.

Python feil når if-betingelsen ikke er oppfylt

# 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 Linje 3: Vi definerer to variabler x, y = 8, 4.
  • Code Linje 4: Hvis-setningen sjekker betingelsen x < y, som er Falsk i dette tilfellet.
  • Code Linje 5: Variabelen st er IKKE satt til "x er mindre enn y."
  • Code Linje 6: Linjen print(st) prøver å skrive ut en variabel som aldri ble deklarert, så Python hever en Navnefeil.
⚠ Advarsel: Å referere til en variabel som bare er tilordnet innenfor en if-blokk er en vanlig nybegynnerfeil. Enten oppgi en else-gren eller gi variabelen en standardverdi før if-setningen.

Slik bruker du «ellers»-betingelsen

For å unngå feilen ovenfor kan du legge til en else-betingelse. else-betingelsen brukes når du må bedømme én påstand på grunnlag av en annen. Hvis én betingelse er usann, gir else-blokken en alternativ bane slik at programmet fortsatt produserer et resultat.

Eksempel:

Python eksempel på if-else-betingelse

# 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 Linje 3: Vi definerer to variabler x, y = 8, 4.
  • Code Linje 4: Hvis-setningen sjekker betingelsen x < y, som er Falsk i dette tilfellet.
  • Code Linje 6: Flyten i programkontrollen går til den andre betingelsen.
  • Code Linje 7: Variabelen st settes til «x er» større enn y."
  • Code Linje 8: Linjen print(st) sender ut verdien av st, som er «x er større enn y».

Når «ellers»-betingelsen ikke fungerer

Ellers-betingelsen vil ikke alltid gi deg ønsket resultat. Den kan skrive ut feil utdata når det er en feil i programlogikken. Dette skjer vanligvis når du må rettferdiggjøre mer enn to utsagn eller betingelser i et program. Et eksempel vil hjelpe deg å forstå dette konseptet.

Her er begge variablene de samme (8, 8), men programutgangen er «x er større enn y» som er FEILDette skjer fordi programmet sjekker den første betingelsen (if-betingelsen), og når den feiler, skriver den ut den andre betingelsen (else-betingelsen) som standard. I neste trinn skal vi se hvordan vi kan rette opp denne feilen.

Python ellers gir tilstanden feil resultat

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

Slik bruker du «elif»-betingelsen

For å korrigere den tidligere feilen som ble gjort av else-betingelsen, kan vi bruke elif setning. Ved å bruke elif-betingelsen ber du programmet om å teste en tredje mulighet når den første betingelsen er usann. Du kan kjede flere elif-betingelser for å sjekke om det finnes en fjerde, femte og ytterligere mulighet i koden din.

Eksempel:

Python eksempel på elif-betingelse

# 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 Linje 3: Vi definerer to variabler x, y = 8, 8.
  • Code Linje 4: Hvis-setningen sjekker betingelsen x < y, som er Falsk i dette tilfellet.
  • Code Linje 6: Programkontrollflyten går til elif-betingelsen. Den sjekker om x == y, som er sant.
  • Code Linje 7: Variabelen st settes til «x er» samme som y. ”
  • Code Linje 10: Programkontrollen avslutter if-setningen (den vil ikke nå else-setningen) og skriver ut st. Utdataene er «x er det samme som y», noe som er riktig.

Slik utfører du en betinget setning med minimal Code

Nå som du kan skrive fullstendige if-elif-else-blokker, Python lar deg kondensere en enkel betingelse til én linje. I stedet for å skrive separat kode for hver gren, kan du bruke en ternært (betinget) uttrykk.

Syntaks:

value_if_true if condition else value_if_false

Eksempel:

Python Eksempel på enlinjet ternær betingelsessetning

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 Linje 2: Vi definerer to variabler x, y = 10, 8.
  • Code Linje 3: Variabelen st settes til «x er mindre enn y» hvis x < y; ellers blir den «x er større enn eller lik y». Fordi x > y her, blir st den andre verdien.
  • Code Linje 4: Skriver ut verdien av st og gir riktig utdata.

Python Nestet if Statement

En nestet if-setning plasserer en if-setning inni en annen, noe som er nyttig når en beslutning avhenger av en annen betingelse. Følgende eksempel demonstrerer en nestet if-setning i Python som beregner skipetping kostnad basert på land og totalsum for bestilling.

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

Fjern kommentaren fra linje 2 i koden ovenfor, kommenter ut linje 3, og kjør koden på nytt for å se hvordan resultatet endres for et annet land.

Bytt sakserklæring inn Python

Hva er en Switch-setning?

En switch-setning er en flerveis grensetning som sammenligner verdien av en variabel med verdiene spesifisert i case-setninger. I mange år har Python språket hadde ikke en switch-setning, så utviklerne implementerte samme oppførsel med Python ordbok kartping.

Eksempel på bruk av ordbokkartping:

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

Bytt etui med fyrstikk (Python 3.10 og Later)

Siden Python 3.10 (utgitt i oktober 2021), Python gir en innfødt fyrstikkeske setning, kjent som strukturell mønstermatching. Den tilbyr et rent og lesbart alternativ til lange elif-kjeder og ordboktilnærmingen vist ovenfor.

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

Understrekingen (_) fungerer som standard, og samsvarer med enhver verdi som ikke håndteres av de tidligere tilfellene, akkurat som standarden i en tradisjonell switch-setning.

✅ Tips: Bruk fyrstikkeske hvis du er på Python 3.10 eller nyere. For eldre versjoner, ordbokkartping er fortsatt standardmåten å emulere en switch-setning.

if vs elif vs else: Rask sammenligning

Bruk denne sammenligningen til å bestemme hvilken betinget struktur som passer til beslutningslogikken din.

UttalelseFormålNår skal du bruke
ifKjører en blokk når en betingelse er sannEn enkelt ja/nei-avgjørelse
hvis ... ellersGir et alternativ når betingelsen er usannTo gjensidig utelukkende utfall
elifTester ytterligere betingelser i rekkefølgeTre eller flere muligheter
Nestet hvisPlasserer en hvis inni en annen hvisEn avgjørelse som avhenger av en annen betingelse
TernærKondenserer if-else til én linjeEnkel verditildeling
fyrstikkeskeMatcher en verdi mot mange mønstreFlerveisforgrening (Python 3.10 +)
⚠ Merk: Python 2 nådde slutten av levetiden 1. januar 2020, og alle eksemplene i denne artikkelen bruker Python 3 syntaks. I Python 2, print var en setning (for eksempel print st) snarere enn en funksjon, så koden ovenfor vil ikke kjøre uendret på Python 2.

Spørsmål og svar

En if-setning starter en beslutning og evalueres alltid. En elif (else-if) kontrolleres bare når de foregående if- eller elif-betingelsene er usanne, slik at du kan teste flere muligheter i én kjede mens nøyaktig én blokk kjører.

Ja. Siden Python 3.10, match-case-setningen gir innebygd forgrening i svitsjstil gjennom strukturell mønstermatching. I eldre versjoner emulerer utviklere en svitsj ved hjelp av ordlistekart.ping med get()-metoden for å oppgi en standardverdi.

Bruk et ternært uttrykk: value_if_true if condition else value_if_false. For eksempel, st = “low” if x < 10 else “high” tildeler en verdi på en enkelt lesbar linje uten en fullstendig if-else-blokk.

Ja. AI-kodingsassistenter kan generere, forklare og feilsøke if-elif-else-logikk fra en ledetekst i enkeltspråk. De er nyttige for læring, men du bør fortsatt gjennomgå utdataene for å bekrefte at betingelsene og innrykket samsvarer med den tiltenkte logikken.

Ja. Betinget logikk er grunnleggende for AI. Beslutningstrær, regelbaserte systemer og dataforbehandlingsrørledninger er alle avhengige av if-else-forgrening for å velge handlinger, filtrere data og kontrollere hvordan en modell håndterer forskjellige input.

Oppsummer dette innlegget med: