Klíčové slovo pro tvrzení Pythonu
Tvrzení v Pythonu v každém programovacím jazyce jsou nástroje pro ladění, které pomáhají hladkému toku kódu. Tvrzení jsou hlavně předpoklady, které programátor ví nebo vždy chce být pravdivé, a proto je vkládá do kódu, aby jejich selhání neumožnilo další provádění kódu.
Tvrdit klíčové slovo v Pythonu
Zjednodušeně lze říci, že aserce je booleovský výraz, který kontroluje, zda je příkaz pravdivý nebo nepravdivý. Pokud je příkaz pravdivý, nedělá nic a pokračuje v provádění, ale pokud je příkaz False, zastaví provádění programu a vyvolá chybu.
Vývojový diagram prohlášení Python Assert
Vývojový diagram prohlášení o tvrzeních v Pythonu
Syntaxe klíčového slova v Pythonu
V Pythonu je tvrdit klíčové slovo pomáhá při plnění tohoto úkolu. Tento příkaz bere jako vstup booleovskou podmínku, která, když vrátí true, nic nedělá a pokračuje v normálním toku provádění, ale pokud je vypočítána jako nepravdivá, vyvolá AssertionError spolu s volitelnou poskytnutou zprávou.
Syntaxe: podmínka potvrzení, chybová_zpráva (nepovinné)
Parametry:
- podmínka: Booleovská podmínka vrací hodnotu true nebo false.
- chybové hlášení : Volitelný argument, který se má vytisknout v konzole v případě AssertionError
Vrácení: Vrátí AssertionError v případě, že se podmínka vyhodnotí jako nepravda spolu s chybovou zprávou, která je poskytnuta.
Klíčové slovo v Pythonu bez chybové zprávy
Tento kód se snaží před provedením operace dělení demonstrovat použití statement v Pythonu kontrolou, zda hodnota b je 0. a je inicializováno na hodnotu 4 a b je inicializováno na hodnotu 0. Program vytiskne zprávu Hodnota a / b je: .Příkaz statement zkontroluje, zda b není rovno 0. Protože b je 0, asset příkaz selže a vyvolá AssertionError.
Vzhledem k tomu, že neúspěšný příkaz statement vyvolá výjimku, program se ukončí a nepokračuje v provádění příkazu print na dalším řádku.
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)> |
Výstup:
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 claim b != 0 11 print(a / b) AssertionError: Klíčové slovo v Pythonu s chybovou zprávou
Tento kód se snaží před provedením operace dělení demonstrovat použití statement v Pythonu kontrolou, zda hodnota b je 0. a je inicializováno na hodnotu 4 a b je inicializováno na hodnotu 0. Program vytiskne zprávu Hodnota a / b je: .Příkaz statement zkontroluje, zda b není rovno 0. Protože b je 0, asset příkaz selže a se zprávou vyvolá AssertionError Chyba nulové divize .
Od an výjimka je vyvoláno neúspěšným příkazemasseste, program se ukončí a nepokračuje v provádění příkazu print na dalším řádku.
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)> |
Výstup:
AssertionError: Zero Division Error
Tvrdit uvnitř funkce
Příkaz statement se v tomto příkladu používá uvnitř funkce k ověření, že délka a šířka obdélníku jsou kladné před výpočtem jeho plochy. AssertionError vyvolá AssertionError se zprávou Délka a šířka musí být kladná, pokud je nepravdivá. Pokud je tvrzení pravdivé, funkce vrátí plochu obdélníku; pokud je nepravda, ukončí se s chybou. Abychom ukázali, jak využít aserci v různých situacích, je funkce volána dvakrát, jednou s kladnými vstupy a jednou se zápornými vstupy.
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)> |
Výstup:
AssertionError: Length and widthmust be positive
Tvrdit s booleovskou podmínkou
V tomto příkladu příkaz statement kontroluje, zda je booleovská podmínka 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)> |
Výstup:
x = 10 y = 20
Tvrdit typ proměnné v Pythonu
V tomto příkladu příkazy claim kontrolují, zda jsou typy proměnných a a b str a int, v daném pořadí. Pokud některé z tvrzení selže, vyvolá chybu AssertionError. Pokud obě tvrzení projdou, program pokračuje a vypíše hodnoty a a 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)> |
Výstup:
a = hello b = 42
Prosazování slovníkových hodnot
V tomto příkladu příkazy statement kontrolují, zda hodnoty spojené s klíči jablko, banán a třešeň ve slovníku my_dict jsou 1, 2 a 3. Pokud některé z tvrzení selže, vyvolá chybu AssertionError. Pokud všechna tvrzení projdou, program pokračuje a vytiskne obsah slovníku.
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)> |
Výstup:
My dictionary contains the following key-value pairs: {'apple': 1, 'banana': 2, 'cherry': 3} Praktická aplikace
To má mnohem větší využití v rolích Testování a zajišťování kvality v jakékoli doméně vývoje. V závislosti na aplikaci se používají různé typy tvrzení. Níže je jednodušší ukázka programu, který umožňuje odeslat pouze dávku se všemi teplými potravinami, jinak celou dávku odmítne.
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'> )> |
Výstup:
40 is O.K 26 is O.K 39 is O.K 30 is O.K
Výjimka za běhu:
AssertionError: Batch is Rejected
Proč používat Python Assert Statement?
V Pythonu je příkaz statement účinným nástrojem pro ladění, který může pomoci při identifikaci chyb a zajištění toho, že váš kód funguje tak, jak bylo zamýšleno. Zde je několik zdůvodnění pro použití sustain:
- Ladění: Předpoklady vytvořené vaším kódem lze ověřit pomocí příkazu Claim. Můžete rychle najít chyby a odladit svůj program tím, že do svého kódu umístíte příkazy statement.
- Dokumentace: Použití příkazů claim ve vašem kódu může fungovat jako dokumentace. Příkazy Assert usnadňují ostatním pochopení vašeho kódu a práci s ním, protože explicitně popisují předpoklady, které váš kód vytváří.
- Testování: Aby bylo zajištěno, že jsou splněny určité požadavky, často se při testování jednotek používají příkazy claim. Můžete se ujistit, že váš kód funguje správně a že žádné změny, které provedete, nepoškodí současnou funkčnost tím, že do testů začleníte příkazy claim.
- Bezpečnostní: Assert můžete použít ke kontrole, zda vstupy programu splňují požadavky, a jejich ověření. Tím se lze vyhnout bezpečnostním chybám, jako je přetečení vyrovnávací paměti a útoky SQL injection.