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.