L'istruzione assert in Python

Nel linguaggio python l'istruzione assert mi consente di generare un errore se una condizione è falsa.

assert condizione [, espressione condizionata ]

Il funzionamento dell'istruzione assert è simile all'istruzione if ma genera un'errore,.

  1. Se la condizione è falsa, l'istruzione assert genera un errore (AssertionError) o per meglio dire un'eccezione. Inoltre, se è presente anche l'espressione condizionata facoltativa, la esegue.
  2. Se la condizione è vera, non fa nulla e salta alla prima istruzione successiva dello script.

Nota. In inglese assert significa "affermare". Vuol dire che la condizione deve essere vera. Se non è vera, nel programma c'è qualcosa che non va come dovrebbe andare.

    Un esempio pratico

    In questo script assegno alla variabile x il valore 0.

    Nella riga successiva affermo che la variabile x deve essere uguale a 1 tramite l'istruzione assert.

    1. x=0
    2. assert x==1, print("C'è un errore")
    3. print("tutto bene")

    Poi eseguo il programma ( F5 o Run ).

    L'istruzione assert controlla se la condizione (x==1) è vera.

    In questo caso la condizione (x==1) è falsa. Quindi, l'istruzione assert esegue l'espressione condizionata e genera un messaggio errore.

    L'output del programma è il seguente:

    C'è un errore
    Traceback (most recent call last):
    File "tutorial.py", line 2, in <module>
    assert x==1, print("Errore")
    AssertionError: None

    L'istruzione assert visualizza sullo schermo il messaggio "C'è un errore".

    Poi va in errore ( AssertionError ).

    Il programma si blocca alla riga 2 senza eseguire l'istruzione 3.

    A cosa serve generare un errore?

    Potrebbe sembrare inutile. In realtà, è molto utile.

    Grazie all'istruzione assert posso sollevare una eccezione e trovare la soluzione al problema.

    Questa funzione è particolarmente utile durante la fase di test e debug del programma.

    Esempio. Se a causa di un errore di digitazione nel data entry un voto universitario fosse negativo (-5) o superiore a 30 ( es. 35), sarebbe sicuramente un errore sostanziale. Tuttavia, non causerebbe un errore nel computo della media universitaria dello studente perché la media matematica sarebbe comunque possibile. In questo caso è difficile accorgersi del problema.... se non dopo la laurea dello studente, perché il programma continua l'esecuzione. Fortunatamente, in python l'istruzione assert può bloccare il programma e impedire sul nascere il proseguimento del calcolo.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base
    1. Il linguaggio Python
    2. Come installare Python sul PC
    3. Come scrivere un programma in Python
    4. Come usare Python in modalità interattiva
    5. Le variabili
    6. I numeri
    7. Gli operatori logici
    8. Le strutture iterative ( o cicli )
    9. Le strutture condizionali
    10. Le eccezioni
    11. I file in python
    12. Le classi
    13. I moduli