Python Villkorliga uttalanden: IF…Else, ELIF & Switch Case

⚡ Smart sammanfattning

Python Villkorssatser styr programflödet genom att exekvera specifika kodblock endast när booleska uttryck utvärderas till sant. De inkluderar if, else, elif, nästlade if, den ternära operatorn och strukturell mönstermatchning för ren, beslutsdriven logik.

  • Kärnkoncept: En if-sats kör sitt indragna block endast när villkoret utvärderas till sant, vilket utgör grunden för beslutsfattandet i Python.
  • Hantera alternativ: Lägg till else för en reservsökväg och elif för att testa ytterligare villkor i sekvens utan djup kapsling.
  • Undvik logiska fel: Använd en enda if-elif-else-kedja istället för oberoende if-satser när exakt ett utfall ska gälla.
  • Skriv koncist Code: Använd det ternära uttrycket value_if_true if condition else value_if_false för att tilldela ett värde på en läsbar rad.
  • Modern förgrening: Ersätt långa elif-kedjor med ordboksmappningping eller match-case-satsen som introducerades i Python 3.10 för renare flervägsval.

Python Villkorliga uttalanden

Vad finns villkorliga uttalanden i Python?

Villkorliga uttalanden i Python utföra olika beräkningar eller åtgärder beroende på om en specifik booleskt villkor utvärderas till sant eller falskt. De låter ett program fatta beslut och följa olika vägar istället för att köra varje rad i sekvens. I Python, hanteras villkorliga satser av if och dess följeslagare: else, elif och nested if.

Vad är Python Om uttalande?

Ocuco-landskapet Python if uttalande används för beslutsfattande operationer. Den innehåller en mängd kod som bara körs när villkoret som anges i if-satsen är sant. Om villkoret är falskt körs den valfria else-satsen istället och innehåller koden för else-villkoret. När du vill agera på ett villkor medan ett annat inte är sant använder du Python if-else uttalande.

Python if Statement Syntax:

if expression:
    statement
else:
    statement

Python om ... annat flödesschema

Python om…annars flödesschema som visar grenarna sant och falskt

Flödesschemat ovan visar hur kontrollen går igenom en if-else-sats. Låt oss se ett exempel på det. Python if-else-sats i praktiken:

Python exempel på if-sats som utdata i editorn

# 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 definierar två variabler x, y = 2, 8.
  • Code Linje 4: if-satsen kontrollerar villkoret x < y, vilket är Sant I detta fall.
  • Code Linje 5: Variabeln st sätts till "x är mindre än y".
  • Code Linje 6: Linjen print(st) matar ut värdet på st, vilket är "x är mindre än y".

Vad händer när "om"-villkoret inte är uppfyllt

Med utgångspunkt i föregående exempel, låt oss se vad som händer när if-villkoret i Python är inte uppfyllt. När villkoret är falskt och ingen annan gren finns, hoppas den indragna koden över helt.

Python fel när if-villkoret inte är uppfyllt

# 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 definierar två variabler x, y = 8, 4.
  • Code Linje 4: if-satsen kontrollerar villkoret x < y, vilket är Falsk I detta fall.
  • Code Linje 5: Variabeln st är INTE satt till "x är mindre än y."
  • Code Linje 6: Linjen print(st) försöker skriva ut en variabel som aldrig deklarerades, så Python höjer a Namnfel.
⚠ Varning: Att referera till en variabel som bara är tilldelad inuti ett if-block är ett vanligt misstag för nybörjare. Ange antingen en else-gren eller ge variabeln ett standardvärde före if-satsen.

Hur man använder villkoret "annars"

För att undvika felet ovan kan du lägga till ett else-villkor. Else-villkoret används när du måste bedöma ett påstående utifrån ett annat. Om ett villkor är falskt, tillhandahåller else-blocket en alternativ väg så att programmet fortfarande producerar ett resultat.

Exempel:

Python exempel på if-else-villkor

# 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 definierar två variabler x, y = 8, 4.
  • Code Linje 4: if-satsen kontrollerar villkoret x < y, vilket är Falsk I detta fall.
  • Code Linje 6: Programkontrollflödet går till villkoret annars.
  • Code Linje 7: Variabeln st sätts till “x är större än y."
  • Code Linje 8: Linjen print(st) matar ut värdet på st, vilket är "x är större än y".

När "annars"-villkoret inte fungerar

Villkoret "annars" ger inte alltid önskat resultat. Det kan skriva ut fel utdata när det finns ett fel i programlogiken. Detta händer vanligtvis när du måste motivera mer än två satser eller villkor i ett program. Ett exempel hjälper dig att förstå detta koncept.

Här är båda variablerna desamma (8, 8), men programmets utdata är "x är större än y" vilket är FELDetta händer eftersom programmet kontrollerar det första villkoret (if-villkoret), och när det misslyckas skriver det ut det andra villkoret (else-villkoret) som standard. I nästa steg ska vi se hur man korrigerar detta fel.

Python annars villkor ger ett felaktigt 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()

Hur man använder villkoret "elif"

För att korrigera det tidigare felet som orsakades av annars-villkoret kan vi använda elif sats. Genom att använda elif-villkoret anger du att programmet ska testa en tredje möjlighet när det första villkoret är falskt. Du kan länka flera elif-villkor för att kontrollera om det finns en fjärde, femte och ytterligare möjligheter i din kod.

Exempel:

Python exempel på elif-villkor

# 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 definierar två variabler x, y = 8, 8.
  • Code Linje 4: if-satsen kontrollerar villkoret x < y, vilket är Falsk I detta fall.
  • Code Linje 6: Programkontrollens flöde går till elif-villkoret. Det kontrollerar om x == y, vilket är sant.
  • Code Linje 7: Variabeln st sätts till “x är samma som y. "
  • Code Linje 10: Programkontrollen avslutar if-satsen (den når inte else-satsen) och skriver ut st. Utdata är "x är samma som y", vilket är korrekt.

Hur man kör en villkorlig sats med minimal Code

Nu när du kan skriva fullständiga if-elif-else-block, Python låter dig kondensera ett enkelt villkor till en enda rad. Istället för att skriva separat kod för varje gren kan du använda en ternärt (villkorligt) uttryck.

Syntax:

value_if_true if condition else value_if_false

Exempel:

Python exempel på enradig ternär villkorssats

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 definierar två variabler x, y = 10, 8.
  • Code Linje 3: Variabeln st sätts till ”x är mindre än y” om x < y; annars blir den ”x är större än eller lika med y”. Eftersom x > y här blir st det andra värdet.
  • Code Linje 4: Skriver ut värdet på st och ger korrekt utdata.

Python Kapslad if Statement

Ett kapslat if-uttryck placerar ett if-uttryck inuti ett annat, vilket är användbart när ett beslut är beroende av ett andra villkor. Följande exempel visar ett kapslat if-uttryck i Python som beräknar fartygetping kostnad baserad på land och ordersumma.

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

Avkommentera rad 2 i koden ovan, kommentera bort rad 3 och kör koden igen för att se hur utdata ändras för ett annat land.

Byt fallutlåtande in Python

Vad är en Switch-sats?

En switch-sats är en flervägsförgreningssats som jämför värdet på en variabel med de värden som anges i case-satser. Under många år har Python språket hade ingen switch-sats, så utvecklarna implementerade samma beteende med Python lexikon kartaping.

Exempel med ordbokskartaping:

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

Växla fodral med matchning (Python 3.10 och Later)

Eftersom Python 3.10 (släppt i oktober 2021), Python ger en infödd tändsticksfodral sats, känd som strukturell mönstermatchning. Den erbjuder ett rent, läsbart alternativ till långa elif-kedjor och den ordboksbaserade metod som visas ovan.

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

Understrecket (_) fungerar som standardfall och matchar alla värden som inte hanterades av de tidigare fallen, precis som standardvärdet i en traditionell switch-sats.

✅ Tips: Använd tändsticksfodral om du är på Python 3.10 eller senare. För äldre versioner, ordbokskartaping förblir standardsättet att emulera en switch-sats.

if vs elif vs else: Snabb jämförelse

Använd den här jämförelsen för att avgöra vilken villkorlig struktur som passar din beslutslogik.

.SyfteNär ska du använda
ifKör ett block när ett villkor är santEtt enda ja/nej-beslut
om annatGer en reservfunktion när villkoret är falsktTvå ömsesidigt uteslutande resultat
elifTestar ytterligare villkor i sekvensTre eller fler möjligheter
Kapslad omPlacerar ett if inuti ett annat ifEtt beslut som är beroende av ett andra villkor
TernäraKondenserar if-else till en radEnkel värdetilldelning
tändsticksfodralMatchar ett värde mot många mönsterFlervägsförgrening (Python 3.10 +)
⚠ Obs: Python 2 nådde slutet av sin livscykel den 1 januari 2020, och alla exempel i den här artikeln använder Python 3 syntax. I Python 2, print var en sats (till exempel print st) snarare än en funktion, så koden ovan kommer inte att köras oförändrad på Python 2.

Vanliga frågor

En if-sats startar ett beslut och utvärderas alltid. En elif (else-if) kontrolleras endast när föregående if- eller elif-villkor är falska, vilket gör att du kan testa flera möjligheter i en kedja medan exakt ett block körs.

Ja. Sedan Python 3.10, match-case-satsen tillhandahåller inbyggd förgrening i switch-stil genom strukturell mönstermatchning. I äldre versioner emulerar utvecklare en switch med hjälp av ordboksmappning.ping med get()-metoden för att ange ett standardvärde.

Använd ett ternärt uttryck: value_if_true if condition else value_if_false. Till exempel, st = “low” if x < 10 else tilldelar “high” ett värde på en enda läsbar rad utan ett fullständigt if-else-block.

Ja. AI-kodningsassistenter kan generera, förklara och felsöka if-elif-else-logik från en prompt i enkelt språk. De är användbara för inlärning, men du bör fortfarande granska utdata för att bekräfta att villkoren och indenteringen matchar din avsedda logik.

Ja. Villkorlig logik är grundläggande för AI. Beslutsträd, regelbaserade system och dataförbehandlingspipelines förlitar sig alla på if-else-förgreningar för att välja åtgärder, filtrera data och kontrollera hur en modell hanterar olika indata.

Sammanfatta detta inlägg med: