U svijetu kompjuterskog programiranja, nailazak na greške je uobičajena pojava. Uzmimo, na primjer, KeyError: 'acc' in piton. Ova greška se često pojavljuje kada određeni ključ kojem pokušavamo pristupiti iz rječnika ne postoji. Srećom, Python pruža elokventno rješenje za rješavanje takvih problema i sprječavanje pada vašeg koda. Ovo uključuje primjenu procedura za obradu izuzetaka, korištenje funkcije get() ili provjeru ključeva prije pristupanja njima. Uz pravi pristup, ovom greškom se može vješto upravljati.
Razumijevanje KeyError
KeyError u Pythonu je vrsta izuzetka koji se pokreće kada pokušate pristupiti rječniku s ključem koji ne postoji. Uvijek je dobra praksa kodiranja i prema Pythonovoj službenoj dokumentaciji, provjeriti da li je ključ prisutan prije nego što pokušate pristupiti njegovoj vrijednosti.
#Random example of KeyError dict1 = {"a":1,"b":2,"c":3} print(dict1["d"])
U kodu iznad, 'd' ne postoji u rječniku dict1, stoga rezultira Greška ključa: 'd'.
Rješenje za KeyError: 'acc'
Rješenje za rukovanje KeyError efektivno spada u način na koji pristupate pristupu stavkama iz rječnika. Jedan od načina na koji možete izbjeći ovu grešku je korištenje get () metoda prilikom referenciranja ključa.
Evo kako biste to uradili:
#prints None instead of giving KeyError print(dict1.get("d"))
Kod vraća None, jer "d" nije u rječniku. Koristeći get () metodom, takođe možemo obezbediti podrazumevanu vrednost koja se vraća kada ključ ne postoji.
#prints 'default' instead of None print(dict1.get("d", 'default'))
Rukovanje iznimkama je još jedna tehnika za rukovanje KeyError. Ovo se može učiniti uz pomoć blokova try-except kao što je prikazano ispod.
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 elegantno obrađuje izuzetak tako što ispisuje “Ključ ne postoji”, što je mnogo jednostavnije za korištenje.
Objašnjenje koda korak po korak
S obzirom na složenost rada sa KeyErrors, važno je razbiti gornji kod, malo po malo.
U prvom primjeru definiramo rječnik pod nazivom 'dict1' sa parovima ključ/vrijednost od {'a': 1, 'b': 2, 'c': 3}. Zatim pokušavamo pristupiti ključu 'd' koji ne postoji u 'dict1'. Ovo uzrokuje da Python pokrene KeyError sa 'd' kao porukom.
U drugom primjeru koristimo metodu get(). Ova metoda Python rječnika dohvaća vrijednost za dati ključ. Ako ključ nije prisutan, onda po defaultu vraća 'None'. Ovo sprečava Python da pokrene KeyError.
U trećem primjeru, postavili smo zadanu vrijednost 'default' da bismo dobili korisnu poruku umjesto 'None'. Ovo je informativniji način da signalizirate da ključ nije bio prisutan.
Na kraju, koristimo blok try-except za rukovanje iznimkama. Naš kod pišemo pod 'try' i definiramo šta treba učiniti u slučaju da se 'KeyError' dogodi pod 'osim'. Ovo pruža sigurnosnu mrežu u koju kod može upasti, umjesto da se razbije ili sruši.
Implementacija ovih taktika u vašem Python programiranju može uvelike pomoći u poboljšanju vaših vještina kodiranja.