Python AssertionError

Python Assertionerror



Kai „Python“ programai veikiant atsiranda netikėta sąlyga, programa sustabdo vykdymą ir grąžina išimtį. „Python“ išimtys ir sintaksės klaidos yra dvi pagrindinės klaidų kategorijos. Kai sintaksiškai galiojančio Python kodo dalis sukuria klaidą, tai vadinama išimties / klaidos iškėlimu. Paskutinėje eilutėje pateikiamas klaidos pranešimas apibrėžia tikslų išimties tipą ir pateikia aprašymą, kad padėtų derinti, o rodyklė nurodo eilutę arba vietą, kur įvyko išimtis. Norint išvengti staigaus programos strigimo, labai svarbu užfiksuoti ir valdyti išimtis. Naudokite kitą kodo vykdymo būdą. Pavyzdžiui, kai įvyksta nurodyta išimtis. Šioje pamokoje bus aptarta AssertionError ir kaip ją išspręsti naudojant Python.

Kas yra Assertion Error Python?

Teigimo klaidos yra programavimo koncepcija, kuri atsiranda, kai programuotojas įrašo arba sukuria kodo bloką, naudojamą tam, kad paskelbtų, kad kriterijus ar sąlyga yra tenkinama prieš paleidžiant modulį. Kaip ir bet kuri „Python“ klaida, valdymas perkeliamas į sekančią kodo eilutę, jei sąlyga buvo nurodyta, kai tvirtinimas buvo paskelbtas teisingu. Kita vertus, jei ji klaidinga, atsiranda klaida arba išimtis ir programa sustabdoma. Assert teiginys gali būti naudojamas įvairiose programavimo kalbose su jų specifinėmis sintaksėmis, nes jis nepriklauso nuo kalbos. Tai poklasis arba išimties klasės pavyzdys. Python AssertionError turi tokią sintaksę:

Sintaksė: tvirtinimo sąlyga, klaidos_pranešimas (neprivaloma)







Pavyzdys

Kaip įvestį įvesime asmens amžių, o jei jis mažesnis už nulį, pultas parodys teigimo klaidą.





O kas, jei įvesime amžių, mažesnį nei 0?





Kodo derinimas naudojant šį metodą yra paprastesnis, todėl lengviau rasti klaidas ir ištaisyti programos klaidas.



Kaip AssertionError veikia Python

Python kalba apima tvirtinimo teiginį, kurį galima naudoti norint generuoti paprastus klaidų pranešimus su loginiais tvirtinimais. Kai tvirtinimo teiginys nepavyksta, iškeliama „išimtis“ „AssertionError“. „Python“ išimčių klasės yra kilusios iš „BaseException“ klasės. Klasė BaseException, kuri taip pat yra pagrindinė AssertionError klasės klasė, yra ta vieta, iš kurios kyla Exception klasė. Visada turėtų būti tinkamas išimčių apdorojimo kodas, skirtas pašalinti tvirtinimo teiginio gedimą, kai tik jis naudojamas. Numatytoji „Python“ išimčių tvarkyklė išspausdins programuotojo parašytą klaidos pranešimą, tačiau klaidą taip pat galima apdoroti arba išspręsti be klaidos pranešimo.

AssertionError diegimas Python

Toliau pateikiami keli Python AssertionError pavyzdžiai:

Pavyzdys

Šiame pavyzdyje mes parašysime Python programą, kad būtų rodoma AssertionError programoje, kuri randa apskritimo plotą.

Spindulio „r“ reikšmė perduodama kaip įvestis į ankstesnės programos funkciją, kuri buvo sukurta apskritimo plotui rasti. Tada tvirtinimo teiginys naudojamas norint nustatyti, ar pateikta vertė arba spindulys „r“ yra mažesnis nei nulis, ir jei jam pateikiama neigiama reikšmė, bus padidinta išimtis. Apskritimo plotas bus grąžintas pagal spindulio „r“ reikšmę, pateiktą funkcijai. Pirma, funkcija vykdoma naudojant r reikšmę kaip 3. Tada funkcija vykdoma su reikšme 2,5. AssertionError iškeliama, kai naudojame neigiamą „r“ reikšmę, ty „-1“.

Pabandykime kitą pavyzdį, kad parodytume tvirtinimo klaidą.

Pavyzdys

Šiame pavyzdyje programa nustatys, ar vardiklio reikšmė nėra nulis.

Teigimo klaidos klaidos pranešimas rodomas ankstesnėje programoje. Sukūrėme du kintamuosius (a ir b), o sveikųjų skaičių reikšmės nurodo kintamuosius. Tada antrasis kintamasis, t. y. b, patikrinamas, ar jis nėra lygus 0, naudojant tvirtinimo teiginį. Kitu atveju klaidos pranešimas išspausdinamas. Jei ne, rodomas pirmojo skaičiaus padalijimo iš antrosios reikšmės rezultatas. Ankstesniame paveikslėlyje rodoma programos išvestis.

AssertionError programos

Kiti naudingi tvirtinimo klaidos naudojimo būdai:

  • Teiginys padeda įvertinti parametrų reikšmes
  • Teiginiai padeda stebėti įvesties tipą ir tai, ar ta vertė yra tinkama
  • Be to, teiginiai padeda nustatyti, ar kitas kodo kūrėjas netinkamai naudoja sąsają
  • Teiginiai padeda nuolat stebėti programos rezultatus

Kaip galime išvengti „Python“ tvirtinimo klaidų

  1. Python programos vėliavėlė -O gali būti naudojama norint išjungti kiekvieną tvirtinimo teiginį. Svarbu atminti, kad teiginiai, pateikiami po tvirtinimo teiginio, nebus vykdomi, jei išjungsime tvirtinimo teiginius.
  2. Aplinkos kintamasis taip pat gali nustatyti vėliavėlę, kad išjungtų tvirtinimo teiginius. Šioje situacijoje turi įtakos visi procesai ir programos, kurios naudoja arba paveldi aplinką.
  3. „Python“ paprasčiausias būdas išvengti tvirtinimo klaidų yra jas tvarkyti rankiniu būdu. Jei užtikriname, kad programos valdymo srautas būtų nukreiptas taip, kad ji nepasiektų tvirtinimo teiginių, tvirtinimo klaidų tikimybė nėra.

Assertion Error tvarkymas

Be tvirtinimo teiginio, tvirtinimo klaidą taip pat galime tvarkyti naudodami šiuos metodus:

Tvirtinimo klaidos tvarkymas naudojant „Try-Except“ blokus

Assert teiginys nustato, ar reikšmės yra lygios. Bandymo blokas sukelia AssertionError klaidą, nes šie sveikieji skaičiai nėra lygūs. Spausdinimo komanda vykdoma, kai blokas „Išskyrus“ nustato išimtį. Čia rodoma spausdinimo teiginio išvestis iš išimties bloko. Didinimo raktinis žodis gali būti naudojamas norint iš naujo padidinti klaidą išskyrus bloke, kad galėtume nustatyti išimties šaltinį. Kai įvyksta išimtis, raktinis žodis „pakelti“ sukels klaidą ir baigs programą. Tai padeda išlaikyti arba išsaugoti esamos išimties įrašą / sekimą.

AssertionError tvarkymas naudojant sekimo modulį

Kai kode yra keli tvirtinimo teiginiai, sekimo modulis padeda nustatyti tikslų klaidos šaltinį.

Naudojant sekimo modulį, mūsų spausdinimo teiginys gali būti parašytas su rezervuotais ženklais {}.

Be to, galime apibrėžti kitus kintamuosius, kad išsaugotume eilutės padėtį, failo pavadinimą, metodo pavadinimą, taip pat tekstą / pranešimą, kuriame įvyko išimtis.

Atsekimo objektas vadinamas „tb“. Naudojame du rezervuotus ženklus: vieną tekstui, o kitą – eilutės vietai spausdinimo teiginyje.

Trys teiginio „raise“ komponentai – exc_type, exc_traceback ir exc_value – pateikiami funkcija sys.exc_info().

Tvirtinimo klaidos tvarkymas naudojant spausdinimo teiginį

Norėdami rankiniu būdu tvarkyti išimtį, galime naudoti teiginį „spausdinti“ išskyrus bloke.

Spausdinimo pareiškime išspausdinamas bet koks vartotojo įvestas klaidos pranešimas. Taikant šį metodą, techninė klaida vartotojui nekels rūpesčių.

Vietoj klaidos rodomas trumpas pranešimas.

Išvada

Šiame įraše pirmą kartą pamatėme išimčių įvedimą Python. Aptarėme AssertionError, kaip ji veikia ir kaip galime įdiegti AssertionError Python. Mes paaiškinome kelis AssertionError pranašumus ir kaip galime jų išvengti. Paskutiniame šio įrašo skyriuje matėme, kaip galime tvarkyti AssertionError programoje Python naudodami „Try-Except Blocks“, sekimo modulį ir spausdinimo teiginį.