Selles artiklis õpime väidet Pythonis väidete abil.
Mis on väide?
Väited on väited, mis väidavad või kinnitavad fakti teie programmis enesekindlalt. Näiteks jagamise funktsiooni kirjutamise ajal olete kindel, et jagaja ei tohiks olla null, väidate, et jagaja ei ole võrdne nulliga.
Väited on lihtsalt tõeväärtuse väljendid, mis kontrollivad, kas tingimused vastavad tõele või mitte. Kui see on tõsi, ei tee programm midagi ja liigub järgmisele koodireale. Kui see on vale, siis programm seiskub ja viskab vea.
See on ka silumisriist, kuna see peatab programmi kohe, kui ilmneb mõni viga, ja näitab, millises programmi veas on toimunud.
Saame selgeks, kui vaadata allolevat vooskeemi:
Pythoni väide
Pythonil on sisseehitatud assert
käsk väite tingimuse kasutamiseks programmis. assert
avaldusel on tingimus või avaldis, mis peaks olema alati tõene. Kui tingimus on vale, peatab programm programmi ja annab AssertionError
.
Süntaks Assert'i kasutamiseks Pyhtonis:
kinnitada
kinnitada,
Pythonis saame assert
avaldust kasutada kahel viisil, nagu eespool mainitud.
assert
avaldusel on tingimus ja kui tingimus ei ole täidetud, programm peatub ja annabAssertionError
.assert
avaldusel võib olla ka tingimus ja valikuline tõrketeade. Kui tingimus ei ole täidetud, peatab kinnitus programmi ja annabAssertionError
veateate.
Võtame näite, kus meil on funktsioon, mis arvutab kasutaja poolt edastatud väärtuste keskmise ja väärtus ei tohiks olla tühi loend. assert
Parameetri kontrollimiseks kasutame lauset ja kui edastatud loendi pikkus on null, programm seiskub.
Näide 1: Assert'i kasutamine ilma veateateta
def avg(marks): assert len(marks) != 0 return sum(marks)/len(marks) mark1 = () print("Average of mark1:",avg(mark1))
Ülaltoodud programmi käivitamisel on väljund:
KinnitusViga
Saime vea, kui edastasime tühja loendi mark1 assert
avaldusele, tingimus muutus valeks ja väide peatab programmi ja annab AssertionError
.
Nüüd edastame veel ühe loendi, mis vastab assert
tingimusele ja vaatame, milline on meie väljund.
Näide 2: Assert'i kasutamine veateatega
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))
Ülaltoodud programmi käivitamisel on väljund:
Mark2 keskmine: 78.0 AssertionError: loend on tühi.
Edastasime avg()
funktsioonile mittetühja nimekirja märgi2 ja ka tühja nimekirja märgi1 ning saime väljundi mark2 loendi jaoks, kuid pärast seda saime vea AssertionError: List is empty
. assert
Tingimus oli täidetud poolt mark2 nimekirja ja programmi jätkata. Kuid mark1 ei vasta tingimusele ja annab AssertionError
.
Peamised punktid, mida meeles pidada
- Väited on tingimus või tõeväärtuse avaldis, mis peaks koodis alati tõene olema.
assert
avaldus võtab avaldise ja valikulise teate.assert
lauset kasutatakse funktsiooni väljundite tüüpide, argumentide väärtuste ja väljundite kontrollimiseks.assert
lauset kasutatakse silumisvahendina, kuna see peatab programmi vea tekkimise kohas.