![Lezioni di Python - 4.5 Gli Assert](https://www.meccanismocomplesso.org/wp-content/uploads/2018/04/Lezioni-di-Python-4.5-Gli-Assert-1024x212.jpg)
Gli assert
Le asserzioni (assert) sono uno strumento di controllo molto utile da utilizzare durante la stesura di un codice in fase di test (DEBUG).
Ogni asserzione introdotta nel codice effettua un controllo ad un preciso momento dell’esecuzione, utilizzando una condizione. Se la condizione è soddisfatta allora l’esecuzione va avanti, altrimenti viene sollevata un eccezione AssertError che blocca l’esecuzione del programma.
Queste asserzioni possono essere attivate e disattivate. Le attiverete quando vorrete effettuare dei controlli, le disattiverete quando sarete sicuri dell’esecuzione.
Quindi le asserzioni possono essere utilizzate come punti di controllo, utili per tenere conto dell’andamento del programma, per esempio verificando il contenuto o il valore di alcune variabili.
Molto spesso le asserzioni vengono aggiunte all’inizio della definizione di una funzione, per effettuare dei controlli sulla validità degli argomenti in entrata, e anche all’uscita di una funzione, quando è necessario controllare la validità del valore di ritorno della funzione.
Per definire una asserzione si usa la clausola assert.
assert condizione
Per esempio:
a = input("Inserisci un valore: ")
a = int(a)
assert a <= 10
print("Hai inserito il valore ",a)
Inserendo un valore maggiore di 10, la asserzione fallisce e viene lanciata l’eccezione, bloccando l’esecuzione del programma.
>>>
Inserisci un valore: 12
Traceback (most recent call last):
File "C:/Python34/prova.py", line 3, in <module>
assert a <= 10
AssertionError
Inoltre assert può accettare un secondo argomento che è il messaggio di errore che segue l’eccezione
a = input("Inserisci un valore: ")
a = int(a)
assert (a <= 10),"Il valore ha superato la soglia di 10"
print("Hai inserito il valore ",a)
Ancora inserendo un valore maggiore di 10
>>>
Inserisci un valore: 12
Traceback (most recent call last):
File "C:/Python34/prova.py", line 3, in
assert (a <= 10),"Il valore ha superato la soglia di 10"
AssertionError: Il valore ha superato la soglia di 10