Python asserisce la parola chiave

Python asserisce la parola chiave

Asserzioni di Python in qualsiasi linguaggio di programmazione ci sono strumenti di debug che aiutano nel flusso regolare del codice. Le asserzioni sono principalmente presupposti che un programmatore sa o vuole sempre essere vero e quindi le inserisce nel codice in modo che il fallimento di queste non consenta l'ulteriore esecuzione del codice.

Asserisci la parola chiave in Python

In termini più semplici, possiamo dire che l'asserzione è l'espressione booleana che verifica se l'affermazione è Vera o Falsa. Se l'affermazione è vera, non fa nulla e continua l'esecuzione, ma se l'affermazione è falsa, interrompe l'esecuzione del programma e genera un errore.

Diagramma di flusso della dichiarazione di asserzione di Python

affermare in Python

Diagramma di flusso della dichiarazione di asserzione di Python

Python asserisce la sintassi della parola chiave

In Python, il affermare la parola chiave aiuta a raggiungere questo compito. Questa istruzione prende come input una condizione booleana, che quando restituisce true non fa nulla e continua il normale flusso di esecuzione, ma se viene calcolata come false, solleva un AssertionError insieme al messaggio opzionale fornito.

Sintassi: affermare condizione, messaggio_errore (facoltativo)

parametri:

  • condizione : La condizione booleana che restituisce vero o falso.
  • messaggio di errore : L'argomento facoltativo da stampare nella console in caso di AssertionError

Ritorna: Restituisce AssertionError, nel caso in cui la condizione risulti falsa insieme al messaggio di errore fornito.

Python asserisce la parola chiave senza messaggio di errore

Questo codice tenta di dimostrare l'uso di assert in Python controllando se il valore di b è 0 prima di eseguire un'operazione di divisione. a viene inizializzato al valore 4 e b viene inizializzato al valore 0. Il programma stampa il messaggio Il valore di a / b è: . L'asserzione controlla se b non è uguale a 0. Poiché b è 0, l'asserzione L'istruzione fallisce e solleva un AssertionError.
Poiché viene sollevata un'eccezione dall'istruzione assert non riuscita, il programma termina e non continua a eseguire l'istruzione print nella riga successiva.

Python3




# initializing number> a> => 4> b> => 0> # using assert to check for 0> print> (> 'The value of a / b is : '> )> assert> b !> => 0> print> (a> /> b)>

Produzione:

The value of a / b is : --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Input In [19], in () 8 # using assert to check for 0 9 print('The value of a / b is : ') --->10 assert b != 0 11 print(a / b) Errore di asserzione: 

Python asserisce la parola chiave con un messaggio di errore

Questo codice tenta di dimostrare l'uso di assert in Python controllando se il valore di b è 0 prima di eseguire un'operazione di divisione. a viene inizializzato al valore 4 e b viene inizializzato al valore 0. Il programma stampa il messaggio Il valore di a / b è: . L'asserzione controlla se b non è uguale a 0. Poiché b è 0, l'asserzione L'istruzione fallisce e solleva un AssertionError con il messaggio Errore di divisione zero .
Da un eccezione viene generato dall'istruzione assert non riuscita, il programma termina e non continua a eseguire l'istruzione print nella riga successiva.

Python3




# Python 3 code to demonstrate> # working of assert> # initializing number> a> => 4> b> => 0> # using assert to check for 0> print> (> 'The value of a / b is : '> )> assert> b !> => 0> ,> 'Zero Division Error'> print> (a> /> b)>

Produzione:

AssertionError: Zero Division Error 

Asserzione all'interno di una funzione

L'istruzione assert viene utilizzata all'interno di una funzione in questo esempio per verificare che la lunghezza e la larghezza di un rettangolo siano positive prima di calcolarne l'area. L'asserzione solleva un AssertionError con il messaggio Lunghezza e larghezza devono essere positive se è falsa. Se l’affermazione è vera, la funzione restituisce l’area del rettangolo; se è falso, esce con un errore. Per mostrare come utilizzare assert in varie situazioni, la funzione viene chiamata due volte, una volta con input positivi e una volta con input negativi.

Python3




# Function to calculate the area of a rectangle> def> calculate_rectangle_area(length, width):> > # Assertion to check that the length and width are positive> > assert> length>> 0> and> width>> 0> ,> 'Length and width'> +> > > 'must be positive'> > # Calculation of the area> > area> => length> *> width> > # Return statement> > return> area> # Calling the function with positive inputs> area1> => calculate_rectangle_area(> 5> ,> 6> )> print> (> 'Area of rectangle with length 5 and width 6 is'> , area1)> # Calling the function with negative inputs> area2> => calculate_rectangle_area(> -> 5> ,> 6> )> print> (> 'Area of rectangle with length -5 and width 6 is'> , area2)>

Produzione:

AssertionError: Length and widthmust be positive 

Asserzione con condizione booleana

In questo esempio, l'istruzione assert controlla se la condizione booleana x

Python3




# Initializing variables> x> => 10> y> => 20> # Asserting a boolean condition> assert> x # Printing the values of x and y print('x =', x) print('y =', y)>

Produzione:

x = 10 y = 20 

Asserire il tipo di variabile in Python

In questo esempio, le istruzioni assert controllano se i tipi delle variabili a e b sono rispettivamente str e int. Se una qualsiasi delle asserzioni fallisce, viene generato un AssertionError. Se entrambe le asserzioni hanno esito positivo, il programma continua e stampa i valori di a e b.

Python3




# Initializing variables> a> => 'hello'> b> => 42> # Asserting the type of a variable> assert> type> (a)> => => str> assert> type> (b)> => => int> # Printing the values of a and b> print> (> 'a ='> , a)> print> (> 'b ='> , b)>

Produzione:

a = hello b = 42 

Asserzione dei valori del dizionario

In questo esempio, le istruzioni assert controllano se i valori associati alle chiavi mela, banana e ciliegia nel dizionario my_dict sono rispettivamente 1, 2 e 3. Se una qualsiasi delle asserzioni fallisce, solleva un AssertionError. Se tutte le asserzioni passano, il programma continua e stampa il contenuto del dizionario.

Python3




# Initializing a dictionary> my_dict> => {> 'apple'> :> 1> ,> 'banana'> :> 2> ,> 'cherry'> :> 3> }> # Asserting the contents of the dictionary> assert> my_dict[> 'apple'> ]> => => 1> assert> my_dict[> 'banana'> ]> => => 2> assert> my_dict[> 'cherry'> ]> => => 3> # Printing the dictionary> print> (> 'My dictionary contains the following key-value pairs:'> , my_dict)>

Produzione:

My dictionary contains the following key-value pairs: {'apple': 1, 'banana': 2, 'cherry': 3} 

Applicazione pratica

Ciò ha un'utilità molto maggiore nei ruoli di test e controllo qualità in qualsiasi dominio di sviluppo. A seconda dell'applicazione vengono utilizzati diversi tipi di asserzioni. Di seguito è riportata una dimostrazione più semplice di un programma che consente l'invio solo del lotto con tutti i cibi caldi, altrimenti rifiuta l'intero lotto.

Python3




# Python 3 code to demonstrate> # working of assert> # Application> # initializing list of foods temperatures> batch> => [> 40> ,> 26> ,> 39> ,> 30> ,> 25> ,> 21> ]> # initializing cut temperature> cut> => 26> # using assert to check for temperature greater than cut> for> i> in> batch:> > assert> i>> => 26> ,> 'Batch is Rejected'> > print> (> str> (i)> +> ' is O.K'> )>

Produzione:

40 is O.K 26 is O.K 39 is O.K 30 is O.K 

Eccezione di runtime:

AssertionError: Batch is Rejected 

Perché utilizzare la dichiarazione di asserzione Python?

In Python, l'istruzione assert è un potente strumento di debug che può aiutare a identificare gli errori e garantire che il codice funzioni come previsto. Ecco diverse giustificazioni per l'utilizzo di assert:

  1. Debug: Le ipotesi fatte dal codice possono essere verificate con l'istruzione assert. Potresti trovare rapidamente errori ed eseguire il debug del tuo programma inserendo istruzioni assert nel codice.
  2. Documentazione: L'uso di istruzioni assert nel codice potrebbe fungere da documentazione. Le dichiarazioni di asserzione rendono più semplice per gli altri comprendere e lavorare con il tuo codice poiché descrivono esplicitamente le ipotesi formulate dal tuo codice.
  3. Test: Per garantire che determinati requisiti siano soddisfatti, le dichiarazioni di asserzione vengono spesso utilizzate nei test unitari. Puoi assicurarti che il tuo codice funzioni correttamente e che eventuali modifiche apportate non danneggino la funzionalità corrente incorporando dichiarazioni di asserzione nei tuoi test.
  4. Sicurezza: È possibile utilizzare assert per verificare che gli input del programma siano conformi ai requisiti e convalidarli. In questo modo è possibile evitare falle di sicurezza come buffer overflow e attacchi SQL injection.