Python

Vadnica za sledenje Pythonu

Vadnica za sledenje Pythonu
Ko je med izvajanjem kode ustvarjena izjema, Python prikaže sledenje. Zdi se, da je sledenje poročilo v Pythonu, ki vključuje klice funkcij, opravljene na določenem mestu v kodi, tj.e., ko imate napako, predlagamo, da jo spustimo nazaj (sledenje nazaj). Trackback lahko zagotovi podrobnosti o tem, kaj se je zgodilo s kodo, če koda prejme napako. Takšna sledenja so lahko videti nekoliko naporna, vendar so lahko resnično koristna, dokler je ne odstranite in vidite, česa vas skuša naučiti. V sledenju Pythona je veliko podatkov, ki vam bodo pomagali analizirati in odpraviti vzrok za težavo, ki je nastala v vaši kodi.

Razlaga sledenja:

Če si ogledate nekaj sledilnih sledi, boste morda lahko bolje razlagali znanje, ki ga nudijo, da boste lahko iz njega kaj dobili. Oglejmo si razlago, kako je lahko osnovna izjema sledenje nazaj. Tu je primer preproste kode, ki generira napako pri sledenju pri izvajanju Spyderja (Python 3).

Spodaj je slika sledenja napake. Prva vrstica prikazuje lokacijo datoteke. Tu je nekaj specifikacij za vse vrstice, ki uporabljajo barve.

Bela: Traceback (zadnji zadnji klic) je stavek o sledenju. Po drugi strani pa zadnji del bele vrstice prikazuje povezane informacije o napaki.

Zelena: Povedati ime in lokacijo datoteke ima napako.

Modra: Prikaže številko vrstice datoteke, v kateri je prišlo do napake.

Rumena: Prikaže dejansko vrstico, kjer se je pojavila izjema.

Rdeča: Vrsta napake.

Tu je nekaj pomembnih napak pri sledenju:

NameError
IndexError
KeyError
TypeError
valueError
ImportError / ModuleNotFound

Napaka imena:
Kadar želite razlagati spremenljivko, ki ni bila določena v kodi, se prikaže NameError. Tu je preprost primer sledenja NameError. Imamo spremenljivko 'številka' definiran z neko vrednostjo, medtem ko je v natisni izjavo, smo natisnili 'otrpljen', kar ni določeno nikjer v kodi. Zaženimo to kodo in preverimo, kaj se zgodi.

Vidite, da je prišlo do sledenja NameError, ker nismo definirali spremenljivke 'numb', torej, kako jo lahko natisnemo. Zato ta program prikazuje NameError in ga v zadnji vrstici z belim in rdečim besedilom obdela z dodatnimi informacijami. Rumeno besedilo prikazuje natančno kodo, kjer pride do napake.

Napaka indeksa:

Napaka IndexError se pojavi, ko je v kodi definirana serija, ki je nedosegljiva. Določili smo a seznam imenovan 'novo' imeti 5 indeksov z nekaterimi vrednostmi. Po tem moramo navesti ukaz print za izpis vrednosti na indeks številko 9.

Ko izvedemo to kodo, bo ustvarila IndexError, ki definira indeks izven obsega. Ker smo opredelili seznam petih indeksov, zato natisnjena številka indeksa, ki je 9, ne more dostopati, ker ni v našem obsegu.

Ključna napaka:

Python generira ključno napako, ko poskušate doseči tipko kateri je ni opredeljeno ali preslikana, zlasti iz a slovar. To je bolj kot IndexError. Torej, poglejmo si preprost primer slovarja z imenom 'naključen' z dvema ključema, ki sta v njem določena z nekaterimi vrednostmi, dodeljenimi tem tipkam. V naslednji vrstici smo natisnili imenovani ključ "A" v izjavi za tiskanje.

Oh! Dobili smo sledenje KeyError. To je posledica napačnega ključa v izjavi za tiskanje, ki v slovarju ni definiran. Napaka je lahko z vnosom velike tiskane črke, medtem ko je v slovarju določena majhna črka.

Napaka tipa:

Napaka TypeError je opredeljena kot izjema, ki se pojavi, ko je neka operacija ali metoda zamazana z neprimeren tip entitete ali spremenljivke. Imamo primer preproste spremenljivke, ki ima dve vrednosti, medtem ko ta niz dodaja obe vrednosti. Prva vrednost je vrsta niza, druga pa celoštevilska vrsta. Izpis za tiskanje tiska rezultat dodajanja.

Ko je ta koda izvedena, sproži izjemo. Ta izjema je vse v povezavi napačne vrste predmeta. Pojasnjuje, da s spremenljivko celoštevilskega tipa ne morete dodati spremenljivke tipa string.

Napaka vrednosti:

Napaka vrednosti je opredeljena kot izjema, ki se pojavi le, ko nekatere vgrajena metoda vzame argument desnega tipa toda napačna vrednost v. Oglejmo si majhen primer. Uporabljamo vgrajeno metodo int () z neko vrednostjo niza v izjavi za tiskanje.

Ko zaženete to enovrstično kodo, bo ustvarila napako ValueError, ker uporabljamo funkcijo celoštevilskega tipa, medtem ko ji damo vrednost niza za izvedbo. Zato bo pokazalo, da ima funkcija int () v sebi neveljavno vrednost.

Po drugi strani pa, če mu daste delno vrednost, jo bo pretvoril v celoštevilčno vrednost.

Ta koda izpiše 11, ker zavzema samo celoštevilski del, decimalni del pa je popolnoma prezrt.

Napaka pri uvozu / modula ni mogoče najti:

Včasih je treba uvoz nekaj paketov oz moduli v svoji python kodi za uporabo posebnih funkcij prek njih. Povratno sledenje ImportError boste našli, če je v izjavi o uvozu v kodi nekoliko napačno. Ta napaka pri sledenju se pojavi, ko ste ne more do najti določen modul ali kaj podobnega znotraj paketa. Tukaj smo uvozili dva modula, 'pip' in 'java', v naši kodi.

Med izvajanjem te kode boste dobili ModuleNotFoundError povratno sledenje. To je zato, ker uvoženi modul 'java' ne podpira knjižnice python. Po drugi strani pa ne daje izjeme pri uvozu modula 'pip', ker je modul, ki ga podpira Python.

Zaključek:

Sledenje Python ponuja odlično znanje, ki vam bo pomagalo ugotoviti, kaj v kodi gre napačno. Ne glede na to, ali to počnete prvič ali preprosto ne razumete, kaj počne, je lahko generacija sledenja nekoliko zastrašujoča. Če želite postati močnejši programer Python, je pomembno, da se naučite, katere podrobnosti daje sledenje Pythona.

Kako obrniti smer drsenja miške in sledilne ploščice v sistemu Windows 10
Miška in Sledilna ploščicaRačunalništvo ni samo enostavno, ampak bolj učinkovito in manj zamudno. Življenja brez teh naprav si ne moremo predstavljati...
Kako spremeniti miškin kazalec in velikost, barvo in shemo kazalca v sistemu Windows 10
Kazalec miške in kazalec v operacijskem sistemu Windows 10 sta zelo pomembna vidika operacijskega sistema. To lahko rečemo tudi za druge operacijske s...
Brezplačni in odprtokodni igralni mehanizmi za razvoj iger Linux
Ta članek bo zajemal seznam brezplačnih in odprtokodnih igralnih mehanizmov, ki jih je mogoče uporabiti za razvoj 2D in 3D iger v Linuxu. Obstaja veli...