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

⚡ Smart opsummering

Python Betingede sætninger styrer programflowet ved kun at udføre specifikke kodeblokke, når boolske udtryk evalueres til sand. De omfatter if, else, elif, nested if, den ternære operator og strukturel mønstermatchning for ren, beslutningsdrevet logik.

  • Kernekoncept: En if-sætning kører kun sin indrykkede blok, når betingelsen evalueres til sand, hvilket danner grundlaget for beslutningstagning i Python.
  • Håndter alternativer: Tilføj else som en fallback-sti og elif for at teste yderligere betingelser i rækkefølge uden dyb indlejring.
  • Undgå logiske fejl: Brug en enkelt if-elif-else-kæde i stedet for uafhængige if-udsagn, når præcis ét resultat skal gælde.
  • Skriv kortfattet Code: Anvend det ternære udtryk value_if_true if condition else value_if_false til at tildele en værdi på én læsbar linje.
  • Moderne forgrening: Erstat lange elif-kæder med ordbogskortping eller match-case-erklæringen introduceret i Python 3.10 for renere flervejsvalg.

Python Betingede erklæringer

Hvad er betingede erklæringer i Python?

Betingede erklæringer i Python udføre forskellige beregninger eller handlinger afhængigt af om en specifik boolsk begrænsning evalueres til sand eller falsk. De lader et program træffe beslutninger og følge forskellige stier i stedet for at køre hver linje i rækkefølge. I Python, betingede udsagn håndteres af if sætning og dens ledsagere: else, elif og nested if.

Hvad er Python Hvis erklæring?

Python hvis erklæring bruges til beslutningstagning. Den indeholder en mængde kode, der kun kører, når betingelsen i if-sætningen er sand. Hvis betingelsen er falsk, køres den valgfri else-sætning i stedet og indeholder koden for else-betingelsen. Når du vil handle på én betingelse, mens en anden ikke er sand, bruger du Python if-else erklæring.

Python if Statement Syntaks:

if expression:
    statement
else:
    statement

Python hvis ... andet Flowchart

Python hvis…ellers flowdiagram, der viser de sande og falske grene

Flowchartet ovenfor viser, hvordan kontrol flyder gennem en if-else-sætning. Lad os se et eksempel på det. Python if-else-sætning i aktion:

Python Eksempel på if-sætning output 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 variable x, y = 2, 8.
  • Code Linje 4: if-sætningen kontrollerer betingelsen x < y, hvilket er Sand I dette tilfælde.
  • Code Linje 5: Variablen st sættes til "x er mindre end y".
  • Code Linje 6: Linjen print(st) udskriver værdien af ​​st, som er "x er mindre end y".

Hvad sker der, når "hvis"-betingelsen ikke er opfyldt

Med udgangspunkt i det foregående eksempel, lad os se, hvad der sker, når hvis-betingelsen i Python ikke er opfyldt. Når betingelsen er falsk, og der ikke findes nogen anden gren, springes den indrykkede kode helt over.

Python fejl, når if-betingelsen ikke er opfyldt

# 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 variable x, y = 8, 4.
  • Code Linje 4: if-sætningen kontrollerer betingelsen x < y, hvilket er False I dette tilfælde.
  • Code Linje 5: Variablen st er IKKE indstillet til "x er mindre end y."
  • Code Linje 6: Linjen print(st) forsøger at udskrive en variabel, der aldrig blev deklareret, så Python rejser en Navnefejl.
⚠ Advarsel: At referere til en variabel, der kun er tildelt inde i en if-blok, er en almindelig begynderfejl. Angiv enten en else-gren, eller giv variablen en standardværdi før if-sætningen.

Sådan bruger du betingelsen "ellers"

For at undgå ovenstående fejl kan du tilføje en else-betingelse. else-betingelsen bruges, når du skal bedømme en sætning på baggrund af en anden. Hvis én betingelse er falsk, giver else-blokken en alternativ sti, så programmet stadig producerer 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 variable x, y = 8, 4.
  • Code Linje 4: if-sætningen kontrollerer betingelsen x < y, hvilket er False I dette tilfælde.
  • Code Linje 6: Programstyringsflowet går til else-betingelsen.
  • Code Linje 7: Variablen st sættes til "x er større end y."
  • Code Linje 8: Linjen print(st) udskriver værdien af ​​st, som er "x er større end y".

Når "ellers"-betingelsen ikke fungerer

Ellers-betingelsen vil ikke altid give dig det ønskede resultat. Den kan udskrive det forkerte output, når der er en fejl i programlogikken. Dette sker normalt, når du skal retfærdiggøre mere end to udsagn eller betingelser i et program. Et eksempel vil hjælpe dig med at forstå dette koncept.

Her er begge variabler de samme (8, 8), men programmets output er "x er større end y" som er FORKERTDette sker, fordi programmet kontrollerer den første betingelse (if-betingelsen), og når den fejler, udskriver det den anden betingelse (else-betingelsen) som standard. I næste trin vil vi se, hvordan vi retter denne fejl.

Python ellers en betingelse, der giver et forkert 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()

Sådan bruger du betingelsen "elif"

For at rette den tidligere fejl, der blev lavet af else-betingelsen, kan vi bruge Elif sætning. Ved at bruge elif-betingelsen fortæller du programmet, at det skal teste en tredje mulighed, når den første betingelse er falsk. Du kan kæde flere elif-betingelser sammen for at kontrollere for fjerde, femte og yderligere muligheder i din kode.

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 variable x, y = 8, 8.
  • Code Linje 4: if-sætningen kontrollerer betingelsen x < y, hvilket er False I dette tilfælde.
  • Code Linje 6: Programstyringsflowet går til elif-betingelsen. Den kontrollerer, om x == y, hvilket er sandt.
  • Code Linje 7: Variablen st sættes til "x er samme som y. "
  • Code Linje 10: Programstyringen afslutter if-sætningen (den når ikke else-sætningen) og udskriver st. Outputtet er "x er det samme som y", hvilket er korrekt.

Sådan udfører du en betinget sætning med minimal Code

Nu hvor du kan skrive fulde if-elif-else-blokke, Python lader dig kondensere en simpel betingelse til en enkelt linje. I stedet for at skrive separat kode for hver gren, kan du bruge en ternært (betinget) udtryk.

Syntaks:

value_if_true if condition else value_if_false

Eksempel:

Python Eksempel på en ternær betinget sætning på én linje

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 variable x, y = 10, 8.
  • Code Linje 3: Variablen st sættes til "x er mindre end y", hvis x < y; ellers bliver den "x er større end eller lig med y." Fordi x > y her, bliver st den anden værdi.
  • Code Linje 4: Udskriver værdien af ​​st og giver det korrekte output.

Python Indlejret if-erklæring

En indlejret if-sætning placerer en if-sætning inden i en anden, hvilket er nyttigt, når en beslutning afhænger af en anden betingelse. Følgende eksempel demonstrerer en indlejret if-sætning i Python der beregner skibping Pris baseret på land og ordretotal.

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 linje 3 ud, og kør koden igen for at se, hvordan outputtet ændrer sig for et andet land.

Skift sagserklæring ind Python

Hvad er en Switch-erklæring?

En switch-sætning er en flervejs branch-sætning, der sammenligner værdien af ​​en variabel med de værdier, der er angivet i case-sætninger. I mange år har Python Sproget havde ikke en switch-sætning, så udviklerne implementerede den samme adfærd med Python ordbog kortping.

Eksempel på brug af ordbogskortping:

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

Skift etui med match (Python 3.10 og Later)

Siden Python 3.10 (udgivet i oktober 2021), Python giver en indfødt tændstiketui sætning, kendt som strukturel mønstermatchning. Den tilbyder et rent og læsbart alternativ til lange elif-kæder og den ovenfor viste ordbogstilgang.

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

Understregningstegn (_) fungerer som standard og matcher enhver værdi, der ikke blev håndteret af de tidligere tilfælde, ligesom standardværdien i en traditionel switch-sætning.

✅ Tip: Brug tændstikæske, hvis du er på Python 3.10 eller nyere. For ældre versioner, ordbogskortping forbliver standardmåden til at emulere en switch-sætning.

if vs elif vs else: Hurtig sammenligning

Brug denne sammenligning til at beslutte, hvilken betinget struktur der passer til din beslutningslogik.

StatementFormålHvornår skal den bruges ?
ifKører en blok, når en betingelse er sandEn enkelt ja/nej-beslutning
hvis ellersGiver et alternativ, når betingelsen er falskTo gensidigt udelukkende resultater
ElifTester yderligere betingelser i rækkefølgeTre eller flere muligheder
Indlejret hvisPlacerer et hvis indeni et andet hvisEn beslutning, der afhænger af en anden betingelse
TernærKondenserer if-else til én linjeSimpel værditildeling
tændstiketuiMatcher en værdi med mange mønstreFlervejsforgrening (Python 3.10 +)
⚠ Bemærk: Python 2 nåede slutningen af ​​sin levetid den 1. januar 2020, og alle eksempler i denne artikel bruger Python 3 syntaks. I Python 2, print var en sætning (for eksempel print st) snarere end en funktion, så koden ovenfor vil ikke køre uændret på Python 2.

Ofte Stillede Spørgsmål

En if-sætning starter en beslutning og evalueres altid. En elif (else-if) kontrolleres kun, når de foregående if- eller elif-betingelser er falske, hvilket giver dig mulighed for at teste flere muligheder i én kæde, mens præcis én blok kører.

Ja. Siden Python I 3.10 giver match-case-sætningen native switch-style forgreninger gennem strukturel mønstermatchning. I ældre versioner emulerer udviklere en switch ved hjælp af ordbogskort.ping med get()-metoden for at angive en standardværdi.

Brug et ternært udtryk: value_if_true if condition else value_if_false. For eksempel, st = “low” if x < 10 else “high” tildeler en værdi på en enkelt læsbar linje uden en fuld if-else-blok.

Ja. AI-kodningsassistenter kan generere, forklare og fejlfinde if-elif-else-logik fra en prompt i et letforståeligt sprog. De er nyttige til læring, men du bør stadig gennemgå outputtet for at bekræfte, at betingelserne og indrykningen matcher din tilsigtede logik.

Ja. Betinget logik er fundamental for kunstig intelligens. Beslutningstræer, regelbaserede systemer og dataforbehandlingspipelines er alle afhængige af if-else-forgrening for at vælge handlinger, filtrere data og kontrollere, hvordan en model håndterer forskellige input.

Opsummer dette indlæg med: