assert în Python

Erori și excepții Python 3.0+

Verifică o condiție care trebuie să fie adevărată; dacă nu este, oprește programul cu AssertionError.

Sintaxă
assert conditie, "mesaj"

Ce face assert

assert conditie nu face nimic dacă condiția este adevărată și aruncă AssertionError (cu mesajul opțional) dacă este falsă. Este folosit pentru a prinde greșelile de programare devreme și în teste.

Python ignoră complet assert când este pornit cu optimizare (python -O). De aceea nu folosi assert pentru a valida datele primite de la utilizator; pentru asta folosește if și raise.

Exemple

Exemplul 1: Verificări interne și teste simple

def medie(note):
    assert note, "Lista de note nu poate fi goală"
    return sum(note) / len(note)

assert medie([8, 10]) == 9
print("Testul a trecut")
try:
    medie([])
except AssertionError as e:
    print("AssertionError:", e)

Rezultat

Testul a trecut
AssertionError: Lista de note nu poate fi goală

Greșeli frecvente

  • Pui paranteze în jurul condiției și mesajului: assert (x > 0, "mesaj"). Este un tuplu nevid, mereu adevărat, deci verificarea nu are loc niciodată (Python afișează și un SyntaxWarning).

Comenzi înrudite

  • raise: Aruncă (semnalează) o excepție, oprind execuția normală până când este prinsă cu except.
  • try / except / else / finally: Prinde și tratează erorile (excepțiile), ca programul să nu se oprească brusc.