Pitone | Errore di asserzione

Pitone | Errore di asserzione

Errore di asserzione
L'asserzione è un concetto di programmazione utilizzato durante la scrittura di un codice in cui l'utente dichiara che una condizione è vera utilizzando affermare istruzione prima di eseguire il modulo. Se la condizione è VERO , il controllo si sposta semplicemente alla riga di codice successiva. Nel caso in cui lo fosse Falso il programma smette di funzionare e ritorna Errore di asserzione Eccezione.

La funzione di affermare è la stessa indipendentemente dal linguaggio in cui è implementata, è un concetto indipendente dal linguaggio, solo la sintassi varia con il linguaggio di programmazione.

Sintassi dell'asserzione:
affermare condizione, messaggio_errore (opzionale)

Esempio 1: errore di asserzione con error_message.

Python3




# AssertionError with error_message.> x> => 1> y> => 0> assert> y !> => 0> ,> 'Invalid Operation'> # denominator can't be 0> print> (x> /> y)>

Produzione :

Traceback (most recent call last): File '/home/bafc2f900d9791144fbf59f477cd4059.py', line 4, in assert y!=0, 'Invalid Operation' # denominator can't be 0 AssertionError: Invalid Operation 

Il gestore di eccezioni predefinito in Python stamperà il messaggio_errore scritto dal programmatore, altrimenti gestirà semplicemente l'errore senza alcun messaggio.
Entrambi i modi sono validi.

Gestione dell'eccezione AssertionError:
Errore di asserzione è ereditato dalla classe Exception, quando si verifica questa eccezione e solleva AssertionError ci sono due modi per gestirla, o l'utente la gestisce o il gestore di eccezioni predefinito.
Nell'Esempio 1 abbiamo visto come funziona il gestore delle eccezioni predefinito.
Ora analizziamo come gestirlo manualmente.

Esempio 2

Python3




# Handling it manually> try> :> > x> => 1> > y> => 0> > assert> y !> => 0> ,> 'Invalid Operation'> > print> (x> /> y)> # the errror_message provided by the user gets printed> except> AssertionError as msg:> > print> (msg)>

Produzione :

Invalid Operation 

Applicazioni pratiche.
Esempio 3: testare un programma.

Python3




# Roots of a quadratic equation> import> math> def> ShridharAcharya(a, b, c):> > try> :> > assert> a !> => 0> ,> 'Not a quadratic equation as coefficient of x ^ 2 can't be 0'> > D> => (b> *> b> -> 4> *> a> *> c)> > assert> D>> => 0> ,> 'Roots are imaginary'> > r1> => (> -> b> +> math.sqrt(D))> /> (> 2> *> a)> > r2> => (> -> b> -> math.sqrt(D))> /> (> 2> *> a)> > print> (> 'Roots of the quadratic equation are :'> , r1, '', r2)> > except> AssertionError as msg:> > print> (msg)> ShridharAcharya(> -> 1> ,> 5> ,> -> 6> )> ShridharAcharya(> 1> ,> 1> ,> 6> )> ShridharAcharya(> 2> ,> 12> ,> 18> )>

Produzione :

Roots of the quadratic equation are : 2.0 3.0 Roots are imaginary Roots of the quadratic equation are : -3.0 -3.0 

Questo è un esempio per mostrare come questa eccezione interrompe l'esecuzione del programma non appena la condizione di asserzione è False.

Altre applicazioni utili:

  • Controllo dei valori dei parametri.
  • Verifica dell'input/tipo valido.
  • Rilevamento dell'abuso di un'interfaccia da parte di un altro programmatore.
  • Controllo dell'output di una funzione.