Python Voorwaardelijke verklaringen: IF...Else, ELIF & Switch Case

โšก Slimme samenvatting

Python Voorwaardelijke instructies sturen de programmastroom door specifieke codeblokken alleen uit te voeren wanneer Booleaanse expressies waar zijn. Voorbeelden hiervan zijn if, else, elif, geneste if, de ternaire operator en structurele patroonherkenning voor een heldere, beslissingsgestuurde logica.

  • Kernbegrip: Een if-statement voert het ingesprongen codeblok alleen uit wanneer de voorwaarde waar is, en vormt daarmee de basis voor besluitvorming. Python.
  • Alternatieven voor de handgreep: Voeg 'else' toe voor een terugvaloptie en 'elif' om extra voorwaarden achter elkaar te testen zonder diepe nesting.
  • Vermijd logische fouten: Gebruik รฉรฉn enkele if-elif-else-keten in plaats van afzonderlijke if-instructies wanneer er precies รฉรฉn uitkomst van toepassing moet zijn.
  • Schrijf beknopt Code: Gebruik de ternaire expressie value_if_true if condition else value_if_false om een โ€‹โ€‹waarde toe te wijzen in รฉรฉn leesbare regel.
  • Moderne vertakking: Vervang lange elif-ketens door een dictionary-map.ping of de match-case-instructie die is geรฏntroduceerd in Python 3.10 voor een schonere meerwegselectie.

Python Voorwaardelijke stellingen

Wat zijn voorwaardelijke uitspraken in Python?

Voorwaardelijke uitspraken in Python Ze voeren verschillende berekeningen of acties uit, afhankelijk van of een specifieke Booleaanse voorwaarde waar of onwaar is. Ze stellen een programma in staat om beslissingen te nemen en verschillende paden te volgen in plaats van elke regel in volgorde uit te voeren. PythonVoorwaardelijke instructies worden afgehandeld door de if De if-instructie en de bijbehorende constructies: else, elif en geneste if-instructies.

Wat is Python Indien verklaring?

De Python als verklaring wordt gebruikt voor besluitvormingsprocessen. Het bevat een stuk code dat alleen wordt uitgevoerd als de voorwaarde in de if-instructie waar is. Als de voorwaarde onwaar is, wordt in plaats daarvan de optionele else-instructie uitgevoerd, die de code voor de else-voorwaarde bevat. Wanneer je wilt handelen op basis van รฉรฉn voorwaarde terwijl een andere niet waar is, gebruik je de Python if-else verklaring.

Python if-instructiesyntaxis:

if expression:
    statement
else:
    statement

Python als...anders stroomdiagram

Python ifโ€ฆelse-stroomdiagram dat de ware en onware takken weergeeft

Het bovenstaande stroomdiagram laat zien hoe de besturing verloopt binnen een if-else-instructie. Laten we een voorbeeld bekijken van... Python Een if-else-instructie in actie:

Python Voorbeeld van de uitvoer van een if-statement in de editor

# 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 Regel 3: We definiรซren twee variabelen x, y = 2, 8.
  • Code Regel 4: De if-instructie controleert de voorwaarde x < y, wat is Waar in dit geval.
  • Code Regel 5: De variabele st wordt ingesteld op โ€œx is kleiner dan y.โ€
  • Code Regel 6: De regel print(st) geeft de waarde van st weer, namelijk "x is kleiner dan y."

Wat gebeurt er als de "als"-voorwaarde niet wordt voldaan?

Voortbordurend op het vorige voorbeeld, laten we eens kijken wat er gebeurt als de if-voorwaarde in Python is niet voldaan. Wanneer de voorwaarde onwaar is en er geen else-tak bestaat, wordt de ingesprongen code volledig overgeslagen.

Python Er treedt een fout op wanneer niet aan de if-voorwaarde is voldaan.

# 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 Regel 3: We definiรซren twee variabelen x, y = 8, 4.
  • Code Regel 4: De if-instructie controleert de voorwaarde x < y, wat is Niet waar in dit geval.
  • Code Regel 5: De variabele st is NIET ingesteld op โ€œx is kleiner dan y.โ€
  • Code Regel 6: De regel `print(st)` probeert een variabele af te drukken die nooit is gedeclareerd, dus Python verhoogt een Naamfout.
โš  Waarschuwing: Het is een veelgemaakte beginnersfout om te verwijzen naar een variabele die alleen binnen een if-blok een waarde krijgt toegewezen. Voeg daarom een โ€‹โ€‹else-tak toe of geef de variabele een standaardwaarde vรณรณr de if-instructie.

Hoe gebruik je de "else"-voorwaarde?

Om de bovenstaande fout te voorkomen, kunt u een else-voorwaarde toevoegen. Een else-voorwaarde wordt gebruikt wanneer u een bewering moet beoordelen op basis van een andere. Als een van de voorwaarden onwaar is, biedt het else-blok een alternatief pad, zodat het programma alsnog een resultaat oplevert.

Voorbeeld:

Python voorbeeld van een if-else-voorwaarde

# 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 Regel 3: We definiรซren twee variabelen x, y = 8, 4.
  • Code Regel 4: De if-instructie controleert de voorwaarde x < y, wat is Niet waar in dit geval.
  • Code Regel 6: De programmacontrole gaat vervolgens naar de else-voorwaarde.
  • Code Regel 7: De variabele st wordt ingesteld op โ€œx is meer dan jij.โ€
  • Code Regel 8: De regel print(st) geeft de waarde van st weer, namelijk "x is groter dan y".

Wanneer de "else"-voorwaarde niet werkt

De else-voorwaarde levert niet altijd het gewenste resultaat op. Het kan een verkeerde uitvoer geven als er een fout in de programmalogica zit. Dit gebeurt meestal wanneer je meer dan twee instructies of voorwaarden in een programma moet rechtvaardigen. Een voorbeeld zal dit concept verduidelijken.

Hier zijn beide variabelen gelijk (8, 8), maar de programma-uitvoer is โ€œx is groter dan y,โ€ dat WRONGDit gebeurt omdat het programma de eerste voorwaarde (de 'if'-voorwaarde) controleert, en als die niet wordt voldaan, print het de tweede voorwaarde (de 'else'-voorwaarde) als standaardwaarde. In de volgende stap zullen we zien hoe we deze fout kunnen corrigeren.

Python anders een voorwaarde die een verkeerd resultaat oplevert

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

Hoe gebruik je de "elif"-voorwaarde?

Om de eerdere fout in de else-voorwaarde te corrigeren, kunnen we gebruikmaken van de elif Met de `elif`-voorwaarde geef je het programma de opdracht om een โ€‹โ€‹derde mogelijkheid te testen wanneer de eerste voorwaarde onwaar is. Je kunt meerdere `elif`-voorwaarden aan elkaar koppelen om in je code te controleren op een vierde, vijfde en verdere mogelijkheden.

Voorbeeld:

Python voorbeeld van een elif-voorwaarde

# 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 Regel 3: We definiรซren twee variabelen x, y = 8, 8.
  • Code Regel 4: De if-instructie controleert de voorwaarde x < y, wat is Niet waar in dit geval.
  • Code Regel 6: De programmacontrole gaat naar de elif-voorwaarde. Deze controleert of x == y, wat waar is.
  • Code Regel 7: De variabele st wordt ingesteld op โ€œx is gelijk y. "
  • Code Regel 10: De programmacontrole verlaat de if-instructie (de else-instructie wordt niet bereikt) en print st. De uitvoer is "x is hetzelfde als y", wat correct is.

Hoe voer je een voorwaardelijke instructie uit met minimale middelen? Code

Nu je volledige if-elif-else-blokken kunt schrijven, Python Hiermee kun je een eenvoudige voorwaarde samenvatten in รฉรฉn regel. In plaats van aparte code te schrijven voor elke tak, kun je een ternaire (voorwaardelijke) uitdrukking.

Syntax:

value_if_true if condition else value_if_false

Voorbeeld:

Python Voorbeeld van een ternaire voorwaardelijke instructie op รฉรฉn regel

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 Regel 2: We definiรซren twee variabelen x, y = 10, 8.
  • Code Regel 3: De variabele st wordt ingesteld op "x is kleiner dan y" als x < y; anders wordt deze "x is groter dan of gelijk aan y". Omdat x > y hier, wordt st de tweede waarde.
  • Code Regel 4: Print de waarde van st en geeft de juiste uitvoer.

Python Geneste if-instructie

Een geneste if-instructie plaatst de ene if-instructie binnen de andere, wat handig is wanneer een beslissing afhangt van een tweede voorwaarde. Het volgende voorbeeld laat een geneste if-instructie zien. Python dat de schepen berekentping De kosten zijn afhankelijk van het land en het totale orderbedrag.

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

Verwijder het commentaar bij regel 2 in de bovenstaande code, zet commentaar bij regel 3 en voer de code opnieuw uit om te zien hoe de uitvoer verandert voor een ander land.

Schakel casusverklaring in Python

Wat is een switch-statement?

Een switch-statement is een statement met meerdere vertakkingen dat de waarde van een variabele vergelijkt met de waarden die in de case-statements zijn gespecificeerd. Jarenlang was dit de gangbare praktijk. Python Omdat de taal geen switch-statement had, implementeerden ontwikkelaars hetzelfde gedrag met Python woordenboek kaartping.

Voorbeeld met behulp van een woordenboekkaartping:

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

Schakelaarbehuizing met match (Python 3.10 en Later)

Sinds Python 3.10 (uitgebracht in oktober 2021), Python biedt een native luciferdoosje Deze verklaring, ook wel bekend als structurele patroonherkenning, biedt een overzichtelijk en leesbaar alternatief voor lange elif-ketens en de hierboven getoonde woordenboekbenadering.

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

Het underscore-teken (_) fungeert als de standaardwaarde en komt overeen met elke waarde die niet door de voorgaande gevallen wordt afgehandeld, net als de standaardwaarde in een traditionele switch-instructie.

โœ… Tip: Gebruik matchcase als je op Python 3.10 of nieuwer. Voor oudere versies, zie de woordenboekmap.ping blijft de standaardmethode om een โ€‹โ€‹switch-statement te emuleren.

if vs elif vs else: een snelle vergelijking

Gebruik deze vergelijking om te bepalen welke voorwaardelijke structuur het beste bij uw besluitvormingslogica past.

StatementDoelWanneer te gebruiken
ifVoert een codeblok uit wanneer aan een bepaalde voorwaarde is voldaan.Een enkele ja/nee-beslissing
als...andersBiedt een alternatief wanneer de voorwaarde onjuist is.Twee elkaar uitsluitende uitkomsten
elifTest aanvullende voorwaarden in volgordeDrie of meer mogelijkheden
Genest alsPlaatst een if-statement binnen een andere if-statement.Een beslissing die afhankelijk is van een tweede voorwaarde.
TernairCondenseert if-else-instructies tot รฉรฉn regel.Eenvoudige waardetoewijzing
luciferdoosjeVergelijkt een waarde met meerdere patronen.Multiway-vertakking (Python 3.10 +)
Opmerking: Python 2 bereikte het einde van de levensduur op 1 januari 2020, en alle voorbeelden in dit artikel maken gebruik van Python 3 syntax. In Python 2. print was een instructie (bijvoorbeeld print st) in plaats van een functie, dus de bovenstaande code zal niet ongewijzigd werken. Python 2.

Veelgestelde vragen

Een if-statement start een beslissing en wordt altijd geรซvalueerd. Een elif (else-if) wordt alleen gecontroleerd als de voorafgaande if- of elif-voorwaarden onwaar zijn, waardoor je meerdere mogelijkheden in รฉรฉn keten kunt testen terwijl er precies รฉรฉn blok wordt uitgevoerd.

Ja. Sinds Python In versie 3.10 biedt de `match-case`-instructie native switch-achtige vertakkingen door middel van structurele patroonherkenning. In oudere versies emuleren ontwikkelaars een switch met behulp van een woordenboekmap.ping met de get()-methode om een โ€‹โ€‹standaardwaarde op te geven.

Gebruik een ternaire expressie: waarde als de voorwaarde waar is, anders waarde als deze onwaar is. Bijvoorbeeld: st = โ€œlaagโ€ als x < 10 anders โ€œhoogโ€ geeft een waarde in รฉรฉn leesbare regel, zonder een volledig if-else-blok.

Ja. AI-codeerassistenten kunnen if-elif-else-logica genereren, uitleggen en debuggen op basis van een eenvoudige opdracht. Ze zijn nuttig om te leren, maar je moet de uitvoer nog steeds controleren om te bevestigen dat de voorwaarden en de inspringing overeenkomen met de logica die je voor ogen hebt.

Ja. Conditionele logica is fundamenteel voor AI. Beslissingsbomen, op regels gebaseerde systemen en dataverwerkingspipelines maken allemaal gebruik van if-else-vertakkingen om acties te kiezen, gegevens te filteren en te bepalen hoe een model verschillende invoer verwerkt.

Vat dit bericht samen met: