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
python inicializační seznam
# 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)> |
>
>
filmové weby podobné 123movies
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.