V tomto článku se dozvíme o prosazování v Pythonu pomocí assert.
Co je tvrzení?
Tvrzení jsou tvrzení, která ve vašem programu s jistotou tvrdí nebo uvádí skutečnost. Například při psaní funkce dělení jste si jisti, že dělitel by neměl být nulový, tvrdíte, že dělitel se nerovná nule.
Tvrzení jsou jednoduše booleovské výrazy, které kontrolují, zda jsou podmínky pravdivé nebo ne. Pokud je to pravda, program neudělá nic a přejde na další řádek kódu. Pokud je to však nepravda, program se zastaví a vyvolá chybu.
Je to také nástroj pro ladění, protože program se zastaví, jakmile dojde k jakékoli chybě, a ukazuje, ve kterém bodě chyby programu došlo.
Můžeme si vyjasnit, když se podíváme na vývojový diagram níže:
Prohlášení o Pythonu
Python má vestavěný assert
příkaz pro použití podmínky tvrzení v programu. assert
příkaz má podmínku nebo výraz, který má být vždy pravdivý. Pokud je podmínka falešná, tvrzení zastaví program a dá AssertionError
.
Syntaxe pro použití Assert v Pyhtonu:
tvrdit
tvrdit,
V Pythonu můžeme použít assert
příkaz dvěma způsoby, jak je uvedeno výše.
assert
příkaz má podmínku a pokud podmínka není splněna, program se zastaví a dáAssertionError
.assert
prohlášení může mít také podmínku a volitelnou chybovou zprávu. Pokud podmínka není splněna, program Assert zastaví program aAssertionError
zobrazí chybovou zprávu.
Vezměme si příklad, kde máme funkci, která vypočítá průměr hodnot předaných uživatelem a hodnota by neměla být prázdným seznamem. Příkaz použijeme assert
ke kontrole parametru a pokud je délka předaného seznamu nulová, program se zastaví.
Příklad 1: Použití assert bez chybové zprávy
def avg(marks): assert len(marks) != 0 return sum(marks)/len(marks) mark1 = () print("Average of mark1:",avg(mark1))
Když spustíme výše uvedený program, výstup bude:
AssertionError
Při předávání prázdného seznamu mark1 do assert
příkazu jsme dostali chybu , podmínka se stala nepravdivou a tvrzení zastaví program a dá AssertionError
.
Nyní projdeme další seznam, který splní assert
podmínku a uvidíme, jaký bude náš výstup.
Příklad 2: Použití assertu s chybovou zprávou
def avg(marks): assert len(marks) != 0,"List is empty." return sum(marks)/len(marks) mark2 = (55,88,78,90,79) print("Average of mark2:",avg(mark2)) mark1 = () print("Average of mark1:",avg(mark1))
Když spustíme výše uvedený program, výstup bude:
Průměr známky 2: 78,0 AssertionError: Seznam je prázdný.
avg()
Funkci jsme předali neprázdný seznam mark2 a také prázdný seznam mark1 a dostali jsme výstup pro seznam mark2, ale poté jsme dostali chybu AssertionError: List is empty
. assert
Podmínka byla splněna v seznamu Mark2 a program pokračovat v jízdě. Mark1 však podmínku nesplňuje a dává AssertionError
.
Klíčové body k zapamatování
- Tvrzení jsou podmínkou nebo booleovským výrazem, který má v kódu vždy platit.
assert
příkaz má výraz a volitelnou zprávu.assert
příkaz se používá ke kontrole typů, hodnot argumentu a výstupu funkce.assert
příkaz se používá jako nástroj pro ladění, protože zastaví program v místě, kde dojde k chybě.