Switch Case in Python

La versione 3.10 porta finalmente l'implementazione dello switch case in Python


Switch Case in Python

Switch Case, anzi no Match Case

Come usare la nuova funzionalità in Python 3.10

Prima della versione 3.10 senza switch case

Python, tra i linguaggi di programmazione più utilizzati al mondo, fino alla versione 3.10 non ha un'implementazione per il costrutto switch case. Strano se si pensa che la quasi totalità dei linguaggi di programmazione come JavaScript, PHP, C++, Java... possiede la sua implementazione.

Con Python, fino ad ora si era costretti ad affidarsi ad una serie poco elegante di if, elif ed else. Una cosa di questo tipo per intenderci:


price = 49

if price < 0:
    print("Prendi uno, è gratis")
elif price < 1000
    print("Puoi pagare in contanti o pos")
else:
    print("Devi pagare con pos")

Ovviamente era possibile definire la propria implementazione di switch case che tuttavia si avvaleva pur sempre di infiniti if else.

La versione 3.10 però ha portato con sé l'implementazione dello switch case. Finalmente aggiungerete!

Questa funzionalità definita "structural pattern matching" sfrutta le parole chiave match e case per implementare lo switch case come lo conosciamo. Chiamarle parole chiave non è proprio corretto se si considera che è permesso creare variabili con lo stesso nome. Per semplicità, pur tenendo a mente questa ambiguità, le continuerò a chiamare parole chiave (keywords).

Come implementare lo Switch Case in Python 3.10

Per sfruttare questa nuova funzionalità dalla versione Python 3.10 basterà utilizzare il pattern seguente:


lang = input("Digita una lettera dalla A alla D: ")

match lang:
    case "A":
        print("Hai digitato A")

    case "B":
        print("Hai digitato B")

    case "C":
        print("Hai digitato C")

    case "D":
        print("Hai digitato D")

    case _:
        print("Hai digitato una lettera diversa da A, B, C, D")

Dove case _ è il caso di default e il break non è necessario perché Python, a differenza degli altri linguaggi, lo aggiunge in automatico senza bisogno che il programmatore lo espliciti.

Come è evidente il codice scritto è meglio strutturato e più chiaro da leggere rispetto ad una lista di if else. Ecco perché l'introduzione dello switch in Python 3.10 rende il linguaggio ancora migliore dando la possibilità a chi scrive codice di farlo in modo chiaro, leggibile e funzionale.

Se ti è piaciuto questo articolo e vorresti leggerne altri quando disponibili, considera di aggiungere il Feed RSS in un aggregatore di notizie come Feedly oppure salva questo sito tra i preferiti e torna quando vuoi 👋


Author: Fantantonio 

Date: 18/10/2022

Categories: devtips

Tags: python