Python Declarații condiționale: IF...Else, ELIF și Switch Case

⚡ Rezumat inteligent

Python Instrucțiunile condiționale direcționează fluxul programului prin executarea anumitor blocuri de cod doar atunci când expresiile booleene se evaluează ca adevărat. Acestea includ if, else, elif, nested if, operatorul ternar și potrivirea structurală a modelelor pentru o logică clară, bazată pe decizii.

  • Concept de bază: O instrucțiune if își execută blocul indentat numai atunci când condiția se evaluează ca adevărată, formând fundamentul luării deciziilor în Python.
  • Alternative la gestionarea problemelor: Adăugați `else` pentru o cale de rezervă și `elif` pentru a testa condiții suplimentare în secvență, fără imbricare profundă.
  • Evitați erorile logice: Folosește un singur lanț de tip if-elif-else în loc de instrucțiuni if ​​independente atunci când ar trebui să se aplice exact un singur rezultat.
  • Scrieți concis Code: Aplică expresia ternară value_if_true if condition else value_if_false pentru a atribui o valoare pe o singură linie lizibilă.
  • Ramificare modernă: Înlocuiți lanțurile lungi de elif cu harta dicționaruluiping sau instrucțiunea de potrivire a cazurilor introdusă în Python 3.10 pentru o selecție multidirecțională mai curată.

Python Declarații condiționate

În ce sunt declarațiile condiționale Python?

Declarații condiționale în Python efectuează calcule sau acțiuni diferite în funcție de evaluarea unei anumite constrângeri booleene ca fiind adevărată sau falsă. Acestea permit unui program să ia decizii și să urmeze căi diferite în loc să ruleze fiecare linie în secvență. În Python, instrucțiunile condiționale sunt gestionate de if instrucțiune și însoțitoarele sale: else, elif și if imbricat.

Ce Este Python Dacă declarație?

Python afirmatie if este utilizat pentru operațiuni decizionale. Conține un corp de cod care rulează numai atunci când condiția dată în instrucțiunea if este adevărată. Dacă condiția este falsă, se execută în schimb instrucțiunea opțională else, care conține codul pentru condiția else. Când doriți să acționați asupra unei condiții în timp ce o alta nu este adevărată, utilizați Python declarație dacă-altfel.

Python Sintaxa instrucțiunii if:

if expression:
    statement
else:
    statement

Python dacă... altfel Diagramă

Python diagramă logică if…else care arată ramurile adevărată și falsă

Schema de flux de mai sus arată cum se desfășoară controlul printr-o instrucțiune if-else. Să vedem un exemplu al Python Instrucțiunea if-else în acțiune:

Python exemplu de ieșire a instrucțiunii if în 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 Linia 3: Definim două variabile x, y = 2, 8.
  • Code Linia 4: Instrucțiunea if verifică condiția x < y, care este Adevărat în acest caz.
  • Code Linia 5: Variabila st este setată la „x este mai mic decât y”.
  • Code Linia 6: Linia print(st) afișează valoarea lui st, care este „x este mai mic decât y”.

Ce se întâmplă când condiția „dacă” nu este îndeplinită

Pornind de la exemplul anterior, să vedem ce se întâmplă când condiția if din Python nu este îndeplinită. Când condiția este falsă și nu există nicio ramură else, codul indentat este omis complet.

Python eroare când condiția if nu este îndeplinită

# 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 Linia 3: Definim două variabile x, y = 8, 4.
  • Code Linia 4: Instrucțiunea if verifică condiția x < y, care este Fals în acest caz.
  • Code Linia 5: Variabila st este NU setat la „x este mai mic decât y”.
  • Code Linia 6: Linia print(st) încearcă să afișeze o variabilă care nu a fost niciodată declarată, deci Python ridică a NameErrore.
⚠ Atenție: Referirea la o variabilă care este atribuită doar în interiorul unui bloc if este o greșeală frecventă a începătorilor. Fie furnizați o ramură else, fie dați variabilei o valoare implicită înainte de instrucțiunea if.

Cum se utilizează condiția „altfel”

Pentru a evita eroarea de mai sus, puteți adăuga o condiție else. Condiția else este utilizată atunci când trebuie să evaluați o afirmație pe baza alteia. Dacă o condiție este falsă, blocul else oferă o cale alternativă, astfel încât programul să producă în continuare un rezultat.

Exemplu:

Python exemplu de condiție if-else

# 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 Linia 3: Definim două variabile x, y = 8, 4.
  • Code Linia 4: Instrucțiunea if verifică condiția x < y, care este Fals în acest caz.
  • Code Linia 6: Fluxul de control al programului trece la condiția else.
  • Code Linia 7: Variabila st este setată la „x este mai mare decât y.”
  • Code Linia 8: Linia print(st) afișează valoarea lui st, care este „x este mai mare decât y”.

Când condiția „altceva” nu funcționează

Condiția „else” nu va oferi întotdeauna rezultatul dorit. Poate afișa o ieșire greșită atunci când există o eroare în logica programului. Acest lucru se întâmplă de obicei atunci când trebuie să justificați mai mult de două instrucțiuni sau condiții într-un program. Un exemplu vă va ajuta să înțelegeți acest concept.

Aici ambele variabile sunt aceleași (8, 8), dar rezultatul programului este „x este mai mare decât y” care este GRESITAcest lucru se întâmplă deoarece programul verifică prima condiție (condiția if) și, atunci când aceasta eșuează, afișează a doua condiție (condiția else) ca implicită. În pasul următor, vom vedea cum să corectăm această eroare.

Python altfel condiție care produce un rezultat greșit

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

Cum se utilizează condiția „elif”

Pentru a corecta eroarea anterioară făcută de condiția else, putem folosi Elif Instrucțiunea. Prin utilizarea condiției elif, îi spuneți programului să testeze o a treia posibilitate atunci când prima condiție este falsă. Puteți înlănțui mai multe condiții elif pentru a verifica a patra, a cincea și alte posibilități în codul dumneavoastră.

Exemplu:

Python exemplu de condiție elif

# 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 Linia 3: Definim două variabile x, y = 8, 8.
  • Code Linia 4: Instrucțiunea if verifică condiția x < y, care este Fals în acest caz.
  • Code Linia 6: Fluxul de control al programului trece la condiția elif. Verifică dacă x == y, ceea ce este adevărat.
  • Code Linia 7: Variabila st este setată la „x este la fel ca y. "
  • Code Linia 10: Controlul programului iese din instrucțiunea if (nu va ajunge la instrucțiunea else) și afișează st. Rezultatul este „x este același cu y”, ceea ce este corect.

Cum se execută o instrucțiune condițională cu Minimal Code

Acum că poți scrie blocuri complete de tip if-elif-else, Python vă permite să condensați o condiție simplă într-o singură linie. În loc să scrieți cod separat pentru fiecare ramură, puteți utiliza un expresie ternară (condițională).

Sintaxă:

value_if_true if condition else value_if_false

Exemplu:

Python exemplu de instrucțiune condițională ternară pe o singură linie

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 Linia 2: Definim două variabile x, y = 10, 8.
  • Code Linia 3: Variabila st este setată la „x este mai mic decât y” dacă x < y; altfel devine „x este mai mare sau egal cu y”. Deoarece x > y aici, st devine a doua valoare.
  • Code Linia 4: Afișează valoarea lui st și oferă rezultatul corect.

Python Imbricat if Declarație

O instrucțiune if imbricată plasează o instrucțiune if în interiorul alteia, ceea ce este util atunci când o decizie depinde de o a doua condiție. Următorul exemplu demonstrează o instrucțiune if imbricată în Python care calculează navaping Cost în funcție de țară și de totalul comenzii.

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

Eliminați comentariile de la linia 2 din codul de mai sus, comentați linia 3 și rulați din nou codul pentru a vedea cum se modifică rezultatul pentru o altă țară.

Comutați declarația cazului în Python

Ce este o instrucțiune Switch?

O instrucțiune switch este o instrucțiune de ramificare multiway care compară valoarea unei variabile cu valorile specificate în instrucțiunile case. Timp de mulți ani, Python limbajul nu avea o instrucțiune switch, așa că dezvoltatorii au implementat același comportament cu Python dicţionar Hartăping.

Exemplu folosind harta dicționaruluiping:

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

Carcasa schimbătorului cu chibrit (Python 3.10 și Later)

Întrucât Python 3.10 (lansat în octombrie 2021), Python oferă un nativ carcasă de chibrituri instrucțiune, cunoscută sub numele de potrivire structurală a modelelor. Oferă o alternativă curată și ușor de citit la lanțurile elif lungi și la abordarea dicționar prezentată mai sus.

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

Sublinierea (_) acționează ca caz implicit, potrivindu-se cu orice valoare negestionată de cazurile anterioare, la fel ca valoarea implicită dintr-o instrucțiune switch tradițională.

✅ Sfat: Folosește majuscule sau minuscule dacă ești activat Python 3.10 sau mai nou. Pentru versiunile mai vechi, harta dicționaruluiping rămâne metoda standard de a emula o instrucțiune switch.

if vs elif vs else: Comparație rapidă

Folosește această comparație pentru a decide ce structură condițională se potrivește logicii tale decizionale.

DeclarațieScopCând să utilizați
ifRulează un bloc când o condiție este adevăratăO singură decizie de tip da/nu
daca...altfelOferă o soluție de rezervă atunci când condiția este falsăDouă rezultate care se exclud reciproc
ElifTestează condiții suplimentare în secvențăTrei sau mai multe posibilități
Imbricat dacăPlasează un if în interiorul unui alt ifO decizie care depinde de o a doua condiție
TernarCondensează if-else într-o singură linieAtribuirea simplă a valorilor
carcasă de chibrituriPotrivește o valoare cu mai multe modeleRamificare multidirecțională (Python 3.10 +)
⚠ Notă: Python 2 a ajuns la sfârșitul duratei de viață la 1 ianuarie 2020, iar toate exemplele din acest articol folosesc Python 3 sintaxă. În Python 2, print era o instrucțiune (de exemplu, print st) și nu o funcție, deci codul de mai sus nu va rula neschimbat pe Python 2.

Întrebări frecvente

O instrucțiune if inițiază o decizie și este întotdeauna evaluată. O instrucțiune elif (else-if) este verificată numai atunci când condițiile if sau elif precedente sunt false, permițându-vă să testați mai multe posibilități într-un singur lanț în timp ce rulează exact un bloc.

Da. Din moment ce Python În versiunea 3.10, instrucțiunea match-case oferă ramificare nativă în stil switch prin potrivirea structurii modelelor. În versiunile mai vechi, dezvoltatorii emulează un switch folosind o hartă de dicționare.ping cu metoda get() pentru a furniza o valoare implicită.

Se folosește o expresie ternară: value_if_true if condition else value_if_false. De exemplu, st = „low” if x < 10 else „high” atribuie o valoare într-o singură linie lizibilă, fără un bloc complet if-else.

Da. Asistenții de codare bazați pe inteligență artificială pot genera, explica și depana logica if-elif-else dintr-o solicitare în limbaj simplu. Sunt utili pentru învățare, dar ar trebui să revizuiți totuși rezultatul pentru a confirma că condițiile și indentarea corespund logicii dorite.

Da. Logica condiționată este fundamentală pentru inteligența artificială. Arborii de decizie, sistemele bazate pe reguli și canalele de preprocesare a datelor se bazează pe ramificarea de tip if-else pentru a alege acțiuni, a filtra datele și a controla modul în care un model gestionează diferite intrări.

Rezumați această postare cu: