V tem članku bomo spoznali uveljavljanje v Pythonu z uporabo assert.
Kaj je trditev?
Trditve so izjave, ki v vašem programu trdijo ali dejstvo zaupajo. Na primer, med pisanjem delitvene funkcije ste prepričani, da delilec ne sme biti nič, in trdite, da delilec ni enak nič.
Trditve so preprosto logični izrazi, ki preverjajo, ali pogoji vrnejo resnico ali ne. Če je res, program ne naredi ničesar in se premakne v naslednjo vrstico kode. Če je napačno, se program ustavi in prikaže napako.
Je tudi orodje za odpravljanje napak, saj program ustavi takoj, ko pride do napake, in pokaže, na kateri točki programske napake je prišlo.
Jasno si lahko ogledamo spodnji diagram poteka:
Izjava o trditvi Pythona
Python ima vgrajen assert
stavek za uporabo pogoja trditve v programu. assert
stavek ima pogoj ali izraz, ki naj bi bil vedno resničen. Če je pogoj napačen, uveljavi program ustavi in izda AssertionError
.
Sintaksa za uporabo programa Assert v Pyhtonu:
trditi
trdijo,
V Pythonu lahko assert
stavke uporabljamo na dva načina, kot smo že omenili.
assert
izjava ima pogoj in če pogoj ni izpolnjen, se program ustavi in izdaAssertionError
.assert
stavek ima lahko tudi pogoj in neobvezno sporočilo o napaki. Če pogoj ni izpolnjen, uveljavi program ustavi in izdaAssertionError
skupaj s sporočilom o napaki.
Vzemimo primer, kjer imamo funkcijo, ki izračuna povprečje vrednosti, ki jih je posredoval uporabnik, in vrednost ne sme biti prazen seznam. Za assert
preverjanje parametra bomo uporabili stavek in če je dolžina posredovanega seznama nič, se program ustavi.
Primer 1: Uporaba trditve brez sporočila o napaki
def avg(marks): assert len(marks) != 0 return sum(marks)/len(marks) mark1 = () print("Average of mark1:",avg(mark1))
Ko zaženemo zgornji program, bo rezultat:
AssertionError
Prišlo je do napake, ko smo assert
podali prazen seznam mark1 v stavek, pogoj je postal neveljaven in trditev ustavi program in izda AssertionError
.
Zdaj pa podajmo še en seznam, ki bo izpolnjeval assert
pogoj, in poglejmo, kakšen bo naš rezultat.
Primer 2: Uporaba assert s sporočilom o napaki
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))
Ko zaženemo zgornji program, bo rezultat:
Povprečje ocene mark2: 78,0 Napaka AssertionEr: Seznam je prazen.
Funkciji smo predali neprazen seznam mark2 in tudi prazen seznam mark1 avg()
in dobili smo izhod za seznam mark2, potem pa smo dobili napako AssertionError: List is empty
. assert
Pogoj je bil zadovoljen s seznamom in programa za nadaljevanje vožnje mark2. Vendar mark1 ne izpolnjuje pogoja in daje znak AssertionError
.
Ključne točke, ki si jih je treba zapomniti
- Trditve so pogoj ali logični izraz, ki naj bi bil v kodi vedno resničen.
assert
stavek sprejme izraz in neobvezno sporočilo.assert
Stavek se uporablja za preverjanje vrst, vrednosti argumenta in izhoda funkcije.assert
stavek se uporablja kot orodje za odpravljanje napak, saj ustavi program na mestu, kjer pride do napake.