Riješeno: keyerror%3A %27acc%27

U svijetu računalnog programiranja, nailaženje na pogreške uobičajena je pojava. Uzmimo, na primjer, KeyError: 'acc' in Piton. Ova se pogreška često pojavljuje kada određeni ključ kojemu pokušavamo pristupiti iz rječnika ne postoji. Srećom, Python pruža elokventno rješenje za rješavanje takvih problema i sprječavanje rušenja vašeg koda. To uključuje primjenu postupaka rukovanja iznimkama, korištenje funkcije get() ili provjeru ključeva prije pristupanja. Pravilnim pristupom ovom greškom se može vješto upravljati.

Razumijevanje KeyError

KeyError u Pythonu je vrsta iznimke koja se javlja kada pokušate pristupiti rječniku s ključem koji ne postoji. Uvijek je dobra praksa kodiranja i prema Pythonovoj službenoj dokumentaciji, provjeriti postoji li ključ prije pokušaja pristupa njegovoj vrijednosti.

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

U gornjem kodu, 'd' ne postoji u rječniku dict1, stoga rezultira u KeyError: 'd'.

Rješenje za KeyError: 'acc'

Rješenje za rukovanje KeyError učinkovito spada u način na koji pristupate stavkama iz rječnika. Jedan od načina na koji možete izbjeći ovu pogrešku je korištenje dobiti() metoda kada se poziva na ključ.

Evo kako biste to učinili:

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

Kôd vraća None, jer "d" nije u rječniku. Korištenje dobiti() metodu, također možemo dati zadanu vrijednost koja se vraća kada ključ ne postoji.

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

iznimka Rukovanje je još jedna tehnika za rješavanje KeyError. To se može učiniti uz pomoć blokova try-except kao što je prikazano u nastavku.

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

Ovaj kod ne prekida cijeli program i graciozno obrađuje iznimku ispisivanjem "Ključ ne postoji", što je mnogo jednostavnije za korištenje.

Objašnjavanje koda korak po korak

S obzirom na složenost rada s KeyErrors, važno je raščlaniti gornji kod, malo po malo.

U prvom primjeru definiramo rječnik pod nazivom 'dict1' s parovima ključ-vrijednost {'a': 1, 'b': 2, 'c': 3}. Zatim pokušavamo pristupiti ključu 'd' koji ne postoji u 'dict1'. To uzrokuje da Python pokrene KeyError s 'd' kao porukom.

U drugom primjeru koristimo metodu get(). Ova metoda Python rječnika dohvaća vrijednost za dani ključ. Ako ključ nije prisutan, prema zadanim postavkama vraća 'Ništa'. Ovo sprječava Python da pokrene KeyError.

U trećem primjeru postavili smo zadanu vrijednost 'default' kako bismo dobili korisnu poruku umjesto 'Ništa'. Ovo je informativniji način signaliziranja da ključ nije bio prisutan.

Na kraju, koristimo blok pokušaj-osim za rukovanje iznimkama. Naš kod pišemo pod 'try' i definiramo što treba učiniti u slučaju da se pod 'except' pojavi 'KeyError'. Ovo pruža sigurnosnu mrežu u koju kod može upasti, umjesto da se pokvari ili sruši.

Implementacija ovih taktika u vašem Python programiranju može uvelike pomoći u poboljšanju vaših vještina kodiranja.

Povezani postovi:

Ostavite komentar