Atrisināts: keyerror%3A %27acc%27

Pēdējā atjaunošana: 09/25/2023

Datorprogrammēšanas pasaulē kļūdas ir bieži sastopama parādība. Piemēram, Python valodā rodas kļūda KeyError: 'acc' . Šī kļūda bieži rodas, ja konkrēta atslēga, kurai cenšamies piekļūt no vārdnīcas, neeksistē. Par laimi, Python piedāvā daiļrunīgu risinājumu šādu problēmu risināšanai un koda avāriju novēršanai. Tas ietver izņēmumu apstrādes procedūru piemērošanu, funkcijas get() izmantošanu vai atslēgu pārbaudi pirms tām piekļuves. Ar pareizo pieeju šo kļūdu var prasmīgi pārvaldīt.

Izpratne par KeyError

Python valodā KeyError ir izņēmuma veids, kas rodas, mēģinot piekļūt vārdnīcai ar atslēgu, kas neeksistē. Vienmēr ir ieteicams kodēt un saskaņā ar Python oficiālo dokumentāciju pārbaudīt, vai atslēga ir pieejama, pirms mēģināt piekļūt tās vērtībai.

#Random example of KeyError
dict1 = {"a":1,"b":2,"c":3}
print(dict1["d"])

Iepriekš redzamajā kodā vārdnīcā dict1 nav 'd', tāpēc rezultāts ir KeyError: 'd'.

KeyError risinājums: "acc"

KeyError apstrādes risinājums faktiski ir atkarīgs no tā, kā jūs pieejat piekļuvei vārdnīcas elementiem. Viens no veidiem, kā izvairīties no šīs kļūdas, ir izmantot get() metodi, atsaucoties uz atslēgu.

Lūk, kā jūs to darītu:

#prints None instead of giving KeyError
print(dict1.get("d"))

Kods atgriež vērtību “None”, jo “d” nav vārdnīcā. Izmantojot metodi get() , mēs varam arī norādīt noklusējuma vērtību, kas tiek atgriezta, ja atslēga neeksistē.

#prints 'default' instead of None
print(dict1.get("d", 'default'))

Izņēmumu apstrāde ir vēl viena metode KeyError apstrādei. To var izdarīt, izmantojot try-except blokus, kā parādīts zemāk.

try:
    # code that can raise an exception
    print(dict1["d"])
except KeyError:
    # Execute this code in case of KeyError
    print('Key does not exist')

Šis kods neaptur visu programmu un graciozi apstrādā izņēmumu, izdrukājot “Atslēga neeksistē”, kas ir daudz lietotājam draudzīgāka.

Koda izskaidrošana soli pa solim

Ņemot vērā KeyErrors darbības sarežģītību, ir svarīgi pa daļām sadalīt iepriekš minēto kodu.

Pirmajā piemērā mēs definējam vārdnīcu ar nosaukumu 'dict1' ar atslēgu vērtību pāriem {'a': 1, 'b': 2, 'c': 3}. Pēc tam mēs mēģinām piekļūt atslēgai 'd', kas nepastāv 'dict1'. Tas liek Python parādīt KeyError ar "d" kā ziņojumu.

Otrajā piemērā mēs izmantojam metodi get (). Šī Python vārdnīcas metode izgūst noteiktās atslēgas vērtību. Ja atslēgas nav, pēc noklusējuma tā atgriež “Nav”. Tas neļauj Python izraisīt KeyError.

Trešajā piemērā mēs iestatījām noklusējuma vērtību “noklusējums”, lai saņemtu noderīgu ziņojumu, nevis “Nav”. Tas ir informatīvāks veids, kā signalizēt, ka atslēgas nav.

Visbeidzot, izņēmumu apstrādei mēs izmantojam try-izņemot bloku. Mēs ierakstām savu kodu zem “izmēģināt” un definējam, kas jādara, ja “izņemot” rodas atslēgas kļūda. Tas nodrošina drošības tīklu, kurā kods var iekļūt, nevis sabojāt vai avarēt.

Šīs taktikas ieviešana Python programmēšanā var ievērojami palīdzēt uzlabot jūsu kodēšanas prasmes.

Related posts: