Preden se potopimo v KeyError v , pomembno je vedeti, kako je postavljen slovar v pythonu. V tem članku bodo obravnavani naslednji napotki:
Slovar v Pythonu
The Koncept v Pythonu je naključna zbirka vrednosti, ki ima shranjene vrednosti podatkov kot zemljevid. Za razliko od drugih podatkovnih vrst, ki imajo kot element samo eno vrednost. Vsebuje par ključ: vrednost.
Ključna vrednost je bolj učinkovita. Dvopičje loči par ključev in vrednosti, 'vejica' pa vsak ključ. Ta slovar v pythonu deluje podobno kot običajni slovar. Ustrezni ključi bi morali biti enolični in nespremenljivih podatkovnih vrst, kot so nizi, cela števila in nabori, vendar lahko ključe-vrednosti ponavljate in je dovoljeno, da so katere koli vrste. Obstajajo lahko tipke, ki so nizi, ki se nanašajo na številke in obratno.
Oglejmo si, kako slovar deluje na spodnjem kodiranem primeru.
# Ustvarjanje praznega slovarja Dict = {} print ('Null dict:') print (Dict) # Ustvarjanje slovarja s celoštevilčnimi tipkami Dict = {1: 'Fun', 2: 'And', 3: 'Frolic'} print ( 'nD Dictionary z uporabo celoštevilčnih tipk:') print (Dict) # Ustvarjanje slovarja z mešanimi tipkami Dict = {'Name': 'Arun', 1: [12, 23, 34, 45]} print ('nDictionary with the uporaba mešanih tipk: ') print (Dict) # Ustvarjanje slovarja z metodo dict () Dict = dict ({1:' nemščina ', 2:' jezik ', 3:' je zabavno '}) print (' nDictionary with uporaba dict (): ') print (Dict) # Slovar, ki ima vsak element v seznamu Dict = dict ([(1,' Hello '), (2,' Bye ')]) print (' nD Dictionary with each element v paru: ') print (Dict)
KeyError v Pythonu
Ker nam je jasno, kaj je slovar v pythonu in kako deluje. Zdaj pa poglejmo, kaj je ključna napaka. KeyError v Pythonu se pojavi, ko poskušate dostopati do ključa, ki ni v slovarju.
Logika preslikave je podatkovna struktura, ki preslika en niz podatkov na pomembne druge. Torej gre za napako, ki se sproži, ko dostopate do preslikave in je ne najdete. Znana je napaka iskanja, kjer bi bila pomenska napaka navedena kot ključ, ki ga iščete, ni mogoče najti v njegovem pomnilniku. To lahko bolje ponazorimo v spodnji kodi.
sort () v c ++
Tu poskušam dostopati do ključa z imenom „D“, ki ga ni v slovarju. Zato se napaka vrže takoj, ko najde izjemo. Preostale tipke v slovarju, ki so pravilno natisnjene, imajo natančno ustrezne vrednosti.
// dob = {'A': 30, 'B': 28, 'C': 33} tisk (starost ['A']) tisk (starost ['B']) tisk (starost ['C']) tisk (starost ['D']) //
Mehanizem za obdelavo napak KeyError v Pythonu
Kdor naleti na napako KeyError, jo lahko reši odgovorno. Njegova veščina je, da preuči vse možne vložke v določen program in uspešno obravnava vse negotove vnose.
Nekatere od teh rešitev so lahko boljše ali morda niso natančna rešitev, ki jo iščete, odvisno od primera vaše uporabe. Kljub temu je končni cilj ustaviti pojavljanje nepričakovanih izjem pri ključnih napakah.
Če se iz slovarja prikaže napaka v vaši kodi, lahko s pomočjo .get () izvlečete vrednost na določenem ključu ali privzeto vrednost. Oglejmo si vzorec.
// Seznam sadja in njihove cene. while (1): sadje = {'Jabolko': 300, 'Papaja': 128, 'Kivi': 233} sadje = vnos ('Pridobi ceno za:') sadje1 = sadje.get (sadje) če sadje1: tiskanje ( f '{sadje} je {sadje1} rupij.') else: print (stroški f '{sadje} niso znani.')
Splošna rešitev za KeyError
Običajna rešitev je, da lahko za reševanje tovrstnih težav vedno uporabite blok poskusi razen, tako da dvignete ustrezno kodo in zagotovite varnostno rešitev. Za večjo jasnost si oglejte spodnjo kodo.
// while (1): dob = {'Jophi': 12, 'Rao': 20, 'Irvin': 16} person = input ('Get age for:') try: print (f '{person} is { starost [oseba]} let. ') razen KeyError: print (f' starost osebe {osebe} ni znana. ') //
S tem smo prišli do konca tega članka KeyError v članku Python. Upam, da je bil ta članek informativen, da je osvetlil Pythonovo izjemo KeyError in kako jo je mogoče dvigniti. Zdaj se morda zavedate, da lahko v primeru, da je iskanje ključa slovarja v vaši kodi, preklopite z neposrednega dostopa do ključa v slovarju na metodo .get () s privzeto vrnjeno vrednostjo.
Če težava ne izvira iz vaše kode, uporabite blok poskusi razen za boljši nadzor pretoka kode.
Če želite poglobljeno znanje Pythona skupaj z različnimi aplikacijami, lahko za spletno usposabljanje v živo s podporo 24 ur na dan in 7 dni v tednu.
Imate vprašanje za nas? Omenite jih v oddelku za komentarje v 'KeyError in Python' in javili se vam bomo.