Python Istruzioni condizionali: IF…Else, ELIF e Switch Case

⚡ Riepilogo intelligente

Python Le istruzioni condizionali dirigono il flusso del programma eseguendo specifici blocchi di codice solo quando le espressioni booleane risultano vere. Tra queste rientrano if, else, elif, if annidati, l'operatore ternario e la corrispondenza di pattern strutturali per una logica pulita e orientata alle decisioni.

  • Concetto principale: Un'istruzione if esegue il suo blocco rientrato solo quando la condizione risulta vera, formando la base del processo decisionale in Python.
  • Alternative alla maniglia: Aggiungi else per un percorso di fallback e elif per testare ulteriori condizioni in sequenza senza annidamento profondo.
  • Evitare errori logici: Utilizzare una singola sequenza if-elif-else anziché istruzioni if ​​indipendenti quando si desidera che si verifichi esattamente un risultato.
  • Scrivi in ​​modo conciso Code: Applica l'espressione ternaria valore_se_vero se condizione altrimenti valore_se_falso per assegnare un valore in un'unica riga leggibile.
  • Ramificazione moderna: Sostituisci le lunghe catene elif con la mappa del dizionarioping o l'istruzione match-case introdotta in Python 3.10 per una selezione multimodale più pulita.

Python Dichiarazioni condizionali

Cosa sono le dichiarazioni condizionali? Python?

Dichiarazioni condizionali in Python eseguire calcoli o azioni diverse a seconda che uno specifico vincolo booleano risulti vero o falso. Permettono a un programma di prendere decisioni e seguire percorsi diversi invece di eseguire ogni riga in sequenza. Python, le istruzioni condizionali sono gestite da if istruzione e i suoi complementi: else, elif e if annidato.

Cosa è Python Se Dichiarazione?

Migliori Python istruzione if viene utilizzato per operazioni decisionali. Contiene un corpo di codice che viene eseguito solo quando la condizione specificata nell'istruzione if è vera. Se la condizione è falsa, viene invece eseguita l'istruzione else opzionale, che contiene il codice per la condizione else. Quando si desidera agire su una condizione mentre un'altra non è vera, si utilizza l'istruzione else. Python istruzione if-else.

Python Sintassi dell'istruzione if:

if expression:
    statement
else:
    statement

Python se... altrimenti Diagramma di flusso

Python Diagramma di flusso if…else che mostra i rami veri e falsi

Il diagramma di flusso sopra mostra come il controllo scorre attraverso un'istruzione if-else. Vediamo un esempio di Python Esempio pratico di istruzione if-else:

Python Esempio di output dell'istruzione if nell'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 Linea 3: Definiamo due variabili x, y = 2, 8.
  • Code Linea 4: L'istruzione if controlla la condizione x < y, che è I veri in questo caso.
  • Code Linea 5: La variabile st è impostata su "x è minore di y".
  • Code Linea 6: La riga print(st) stampa il valore di st, che è "x è minore di y".

Cosa succede quando la condizione "if" non viene soddisfatta?

Basandoci sull'esempio precedente, vediamo cosa succede quando la condizione if in Python non viene soddisfatta. Quando la condizione è falsa e non esiste alcun ramo else, il codice indentato viene completamente saltato.

Python errore quando la condizione if non è soddisfatta

# 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 Linea 3: Definiamo due variabili x, y = 8, 4.
  • Code Linea 4: L'istruzione if controlla la condizione x < y, che è Falso in questo caso.
  • Code Linea 5: La variabile st è NON impostato su "x è minore di y".
  • Code Linea 6: La riga print(st) tenta di stampare una variabile che non è mai stata dichiarata, quindi Python solleva un NomeErrore.
⚠ Avvertimento: Fare riferimento a una variabile che viene assegnata solo all'interno di un blocco if è un errore comune tra i principianti. È preferibile inserire un ramo else oppure assegnare un valore predefinito alla variabile prima dell'istruzione if.

Come utilizzare la condizione “else”

Per evitare l'errore sopra descritto, è possibile aggiungere una condizione else. La condizione else viene utilizzata quando è necessario valutare un'affermazione in base a un'altra. Se una condizione è falsa, il blocco else fornisce un percorso alternativo in modo che il programma produca comunque un risultato.

Esempio:

Python esempio di condizione 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 Linea 3: Definiamo due variabili x, y = 8, 4.
  • Code Linea 4: L'istruzione if controlla la condizione x < y, che è Falso in questo caso.
  • Code Linea 6: Il flusso di controllo del programma passa alla condizione else.
  • Code Linea 7: La variabile st è impostata su "x è maggiore di te."
  • Code Linea 8: La riga print(st) stampa il valore di st, che è "x è maggiore di y".

Quando la condizione “else” non funziona

La condizione else non sempre produce il risultato desiderato. Può stampare un output errato in presenza di un errore nella logica del programma. Questo accade solitamente quando è necessario giustificare più di due istruzioni o condizioni in un programma. Un esempio aiuterà a comprendere meglio questo concetto.

Qui entrambe le variabili sono uguali (8, 8), eppure l'output del programma è “x è maggiore di y,” che è SBAGLIATOQuesto accade perché il programma verifica la prima condizione (la condizione if) e, in caso di errore, stampa la seconda condizione (la condizione else) come valore predefinito. Nel passaggio successivo vedremo come correggere questo errore.

Python altrimenti la condizione produce un risultato errato

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

Come utilizzare la condizione “elif”

Per correggere l'errore precedente commesso dalla condizione else, possiamo usare Elif Istruzione. Utilizzando la condizione elif, si indica al programma di verificare una terza possibilità quando la prima condizione è falsa. È possibile concatenare più condizioni elif per verificare la quarta, la quinta e ulteriori possibilità nel codice.

Esempio:

Python esempio di condizione 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 Linea 3: Definiamo due variabili x, y = 8, 8.
  • Code Linea 4: L'istruzione if controlla la condizione x < y, che è Falso in questo caso.
  • Code Linea 6: Il flusso di controllo del programma passa alla condizione elif. Questa verifica se x == y, il che è vero.
  • Code Linea 7: La variabile st è impostata su "x è stesso y. "
  • Code Linea 10: Il controllo del programma esce dall'istruzione if (non raggiungerà l'istruzione else) e stampa st. L'output è "x è uguale a y", che è corretto.

Come eseguire un'istruzione condizionale con il minimo Code

Ora che puoi scrivere blocchi if-elif-else completi, Python ti permette di condensare una semplice condizione in una sola riga. Invece di scrivere codice separato per ogni ramo, puoi usare un espressione ternaria (condizionale).

Sintassi:

value_if_true if condition else value_if_false

Esempio:

Python Esempio di istruzione condizionale ternaria su una sola riga

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 Linea 2: Definiamo due variabili x, y = 10, 8.
  • Code Linea 3: La variabile st assume il valore "x minore di y" se x < y; altrimenti assume il valore "x maggiore o uguale a y". Poiché in questo caso x > y, st assume il secondo valore.
  • Code Linea 4: Stampa il valore di st e fornisce l'output corretto.

Python Nidificata se istruzione

Un'istruzione if annidata inserisce un'istruzione if all'interno di un'altra, il che è utile quando una decisione dipende da una seconda condizione. L'esempio seguente mostra un'istruzione if annidata in Python che calcola la naveping Il costo varia in base al paese e all'importo totale dell'ordine.

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

Rimuovi il commento dalla riga 2 del codice qui sopra, commenta la riga 3 ed esegui nuovamente il codice per vedere come cambia l'output per un paese diverso.

Cambia la dichiarazione del caso in Python

Che cos'è un'istruzione Switch?

Un'istruzione switch è un'istruzione di diramazione a più vie che confronta il valore di una variabile con i valori specificati nelle istruzioni case. Per molti anni, l' Python il linguaggio non aveva un'istruzione switch, quindi gli sviluppatori hanno implementato lo stesso comportamento con Python dizionario carta geograficaping.

Esempio di utilizzo della mappa dizionarioping:

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

Custodia per interruttore con abbinamento (Python 3.10 e Later)

Dal Python 3.10 (pubblicato nell'ottobre 2021), Python fornisce un nativo custodia per fiammiferi dichiarazione, nota come corrispondenza di pattern strutturali. Offre un'alternativa pulita e leggibile alle lunghe catene elif e all'approccio del dizionario mostrato sopra.

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

Il carattere di sottolineatura (_) funge da caso predefinito, corrispondendo a qualsiasi valore non gestito dai casi precedenti, proprio come il valore predefinito in una tradizionale istruzione switch.

✅ Suggerimento: Usa match-case se sei su Python 3.10 o versioni successive. Per le versioni precedenti, consultare la mappa del dizionario.ping rimane il metodo standard per emulare un'istruzione switch.

if vs elif vs else: confronto rapido

Utilizza questo confronto per decidere quale struttura condizionale si adatta meglio alla tua logica decisionale.

dichiarazioneMissioneQuando usare
ifEsegue un blocco quando una condizione è veraUna singola decisione sì/no
se…altrimentiFornisce un'alternativa quando la condizione è falsaDue risultati mutuamente esclusivi
ElifVerifica le condizioni aggiuntive in sequenzaTre o più possibilità
Annidato seInserisce un if all'interno di un altro ifUna decisione che dipende da una seconda condizione
TernarioRiduce la struttura if-else in una sola riga.Assegnazione semplice dei valori
custodia per fiammiferiConfronta un valore con numerosi modelliRamificazione multipla (Python 3.10 +)
⚠ Nota: Python 2 ha raggiunto la fine del ciclo di vita il 1° gennaio 2020 e tutti gli esempi in questo articolo utilizzano Python 3 sintassi. In Python 2, print era un'istruzione (ad esempio, print st) piuttosto che una funzione, quindi il codice sopra non verrà eseguito invariato su Python 2.

Domande Frequenti

Un'istruzione if avvia una decisione e viene sempre valutata. Un'istruzione elif (else-if) viene controllata solo quando le condizioni if ​​o elif precedenti sono false, consentendo di testare diverse possibilità in una singola catena mentre viene eseguito un solo blocco di codice.

Sì. Da Python 3.10, l'istruzione match-case fornisce una ramificazione nativa in stile switch tramite la corrispondenza di pattern strutturali. Nelle versioni precedenti, gli sviluppatori emulano uno switch utilizzando la mappa del dizionario.ping utilizzando il metodo get() per fornire un valore predefinito.

Utilizza un'espressione ternaria: valore_se_vero se condizione altrimenti valore_se_falso. Ad esempio, st = "basso" se x < 10 altrimenti "alto" assegna un valore in un'unica riga leggibile senza un blocco if-else completo.

Sì. Gli assistenti di programmazione basati sull'IA possono generare, spiegare ed eseguire il debug della logica if-elif-else a partire da un prompt in linguaggio naturale. Sono utili per l'apprendimento, ma è comunque consigliabile rivedere l'output per verificare che le condizioni e l'indentazione corrispondano alla logica desiderata.

Sì. La logica condizionale è fondamentale per l'IA. Alberi decisionali, sistemi basati su regole e pipeline di preelaborazione dei dati si basano tutti su diramazioni if-else per scegliere le azioni, filtrare i dati e controllare il modo in cui un modello gestisce input diversi.

Riassumi questo post con: