Python anahtar hatası
Python işlevleri ve meth
Michael Zippo
18.11.2021
Var olmayan bir s√∂zlukteki bir √∂ƒüeye eri≈ümeye çalƒ±≈ütƒ±ƒüƒ±nƒ±zda bir Python KeyError ortaya 烱kƒ±yor. Var olan bir s√∂zlukten bir √∂ƒüe seçmek için programƒ±nƒ±zƒ± deƒüi≈ütirerek bu hatayƒ± duzeltebilirsiniz. Veya √∂nce bir anahtarƒ±n olup olmadƒ±ƒüƒ±nƒ± kontrol ederek bu hatayƒ± ç√∂zebilirsiniz.
Az √∂nce bir KeyError ile mi kar≈üƒ±la≈ütƒ±nƒ±z? Endi≈üelenme! Bir KeyError ortaya 烱ktƒ±ƒüƒ±nda, var olmayan bir s√∂zluk içindeki bir anahtara eri≈ümeye çalƒ±≈üƒ±yorsunuz demektir. Nasƒ±l yapƒ±lacaƒüƒ±nƒ± bildiƒüiniz zaman bu hatayƒ± vermek ve duzeltmek kolaydƒ±r.
KeyError’lar, "in‚" veya indekslemeyi kullanarak √∂nceden bir anahtarƒ± kontrol ederek.
Bu kƒ±lavuzda, Python Anahtar Hatalarƒ±nƒ±n ne olduƒüu ve neden ortaya 烱ktƒ±klarƒ± hakkƒ±nda konu≈üacaƒüƒ±z. Gelecekte KeyError’larƒ± nasƒ±l ç√∂zeceƒüinizi bilmeniz için bir hata √∂rneƒüini ve nasƒ±l duzeltileceƒüini g√∂stereceƒüiz.
Haydi başlayalım!
Nedir? a Python KeyError?
Dizin olu≈üturma s√∂zdizimini kullanarak s√∂zlukte var olmayan bir √∂ƒüeye eri≈ümeye çalƒ±≈ütƒ±ƒüƒ±nƒ±zda bir Python KeyError olu≈üur. Python, s√∂zlukte olmayan bir √∂ƒüe için deƒüer d√∂nduremediƒüi için bu hata olu≈üur.
Bir Python s√∂zluƒüu bir kumedir. kume parantezleri ({}) içinde saklanan anahtar/deƒüer çiftlerinin sayƒ±sƒ±:
Anahtarlar "name‚", "fiyat‚" ve "RAM‚" . Anahtarlar bir s√∂zlukte iki nokta ust uste i≈üaretinden √∂nce g√∂runur.
Katƒ±lƒ±mcƒ±larƒ±n %81’i bir eƒüitim kampƒ±na katƒ±ldƒ±ktan sonra teknik i≈ü beklentileri konusunda daha emin hissettiklerini belirtti. Bugun bir eƒüitim kampƒ± ile e≈üle≈ütirin.
Ortalama bir eƒüitim kampƒ± mezunu, bir eƒüitim kampƒ±na ba≈ülamaktan ilk i≈üini bulmaya kadar, kariyer geçi≈üinde altƒ± aydan daha az zaman harcadƒ±.
Ne olduƒüunu g√∂relim. s√∂zluƒüumuzdeki USB baƒülantƒ± noktasƒ± sayƒ±sƒ±nƒ± almaya çalƒ±≈üƒ±rsak:
Kodumuz şunu döndurur:
Bu hata bize belirttiƒüimiz anahtarƒ±n mevcut olmadƒ±ƒüƒ±nƒ± s√∂yluyor. Bu durumda, eksik anahtar "usb_ports‚"’dur.
KeyError Python: Solutions
Bir Python s√∂zluƒüu KeyError’ƒ± i≈ülemek için ≈üunlarƒ± yapabilirsiniz:
- Dizin oluşturmayı kullanarak önceden bir anahtar olup olmadığını kontrol edin
- "in‚" bir anahtar olup olmadƒ±ƒüƒ±nƒ± kontrol etmek için anahtar kelime
- Bir try…except bloğu kullanın.
Sizin için en iyi sonucu veren KeyError’ƒ± ele almanƒ±n ç√∂zumu, kullanƒ±m durumunuza g√∂re deƒüi≈üir.
Sözluk get() Yöntemini kullanın
Python sözluğu get() yöntemi sözlukte bir değer döndurur. get() yöntemiyle varsayılan bir değer belirtebilirsiniz. Belirttiğiniz anahtarın adının bir değeri yoksa bu varsayılan değer döndurulur.
Duşununuz aşağıdaki kod:
Python yorumlayƒ±cƒ±sƒ±nƒ± kullanarak kodumuzu çalƒ±≈ütƒ±ralƒ±m ve ne olduƒüunu g√∂relim:
Kodumuz, "ALU‚" s√∂zluk. Bu anahtar adƒ±na kar≈üƒ±lƒ±k gelen bir deƒüer yok. get() y√∂ntemi, belirttiƒüimiz varsayƒ±lan deƒüeri d√∂ndurur, bu "mevcut deƒüil‚" .
İndekslemeyi Kullanarak Önceden Anahtarı Kontrol Edin
Bir Anahtar Hatasƒ± ile kar≈üƒ±la≈ümamak için indekslemeyi kullanarak bir anahtarƒ±n varlƒ±ƒüƒ±nƒ± kontrol edebilirsiniz. S√∂zlukte bir anahtar varsa, o anahtarƒ± kullanabilirsiniz. Aksi takdirde, programƒ±nƒ±za o tu≈üa baƒülƒ± olmayan ba≈üka bir ≈üey yapmasƒ±nƒ± s√∂yleyebilirsiniz.
Haydi "raspberry_pi‚" Python’da s√∂zluk. ƒ∞ndekslemeyi kullanarak anahtarƒ±mƒ±zƒ±n s√∂zluƒüumuzde olup olmadƒ±ƒüƒ±nƒ± kontrol edelim:
Bir Python "if‚" anahtarƒ±mƒ±zƒ±n var olup olmadƒ±ƒüƒ±nƒ± kontrol etmek için deyim. "raspberry_pi[get_key]‚" yalnƒ±zca anahtar varsa bir deƒüer d√∂ndurur. Bu, anahtarƒ±mƒ±z varsa, "if‚" deyimi yurutulecektir. Anahtarƒ±mƒ±z yoksa, "else‚" deyimi yurutulecektir.
Raspberry Pi’mizin RAM’ini bulmaya çalƒ±≈üalƒ±m:
≈ûimdi bilgisayarƒ±n kaç USB baƒülantƒ± noktasƒ± olduƒüunu bulmaya çalƒ±≈üalƒ±m:
Kodumuz bir KeyError olu≈üturmuyor! Bunun nedeni, kullanmadan √∂nce anahtarƒ±mƒ±zƒ±n var olup olmadƒ±ƒüƒ±nƒ± kontrol etmemizdir. Eƒüer "else‚" içinde raspberry_pi[get_key] kullansaydƒ±k; ifadesi, kodumuz bir KeyError d√∂ndurur.
Bir hatanƒ±n varlƒ±ƒüƒ±nƒ± belirlemek için bir try‚Ķexcept bloƒüu kullanabiliriz ve beklenmedik bir KeyError’ƒ±n Python programƒ±mƒ±za yardƒ±m etmesini durdurun.
Daha √∂nce bir try‚Ķblock kullanarak bilgisayar √∂rneƒüimiz için √∂zel bir hata tanƒ±mlayalƒ±m:
"Python.Engineeringsƒ± hayatƒ±ma girdi en çok ihtiyacƒ±m olduƒüunda ve hƒ±zlƒ± bir ≈üekilde bir bootcamp ile e≈üle≈ümeme yardƒ±mcƒ± oldu. Mezun olduktan iki ay sonra, hayattaki deƒüerlerim ve hedeflerime uygun hayalimdeki i≈üi buldum!"
< p>Raspberry Pi bilgisayarƒ±yla ilgili belirli bir bilgiyi konsola yazdƒ±rmaya çalƒ±≈ümak için try‚Ķexcept bloƒüunu kullanƒ±rƒ±z.Eƒüer kodumuz "try‚" bloƒüunun herhangi bir yerinde bir KeyError ortaya 烱karƒ±rsa, kodumuz içeriƒüin içeriƒüini yurutur. "except‚" blok.
Bu, her KeyError olu≈üturulduƒüunda, konsola "Bu bilgi mevcut deƒüil" yazdƒ±rƒ±ldƒ±ƒüƒ± anlamƒ±na gelir. Bilgisayarƒ±n adƒ±nƒ± √∂ƒürenmeye çalƒ±≈üalƒ±m. :
Kodumuz, "try‚" engellemek. Bu, kodumuzun "except‚" kod bloƒüu.
"in‚" anahtar kelime, Python’un uyelik operat√∂rlerinden biridir. Bir √∂ƒüenin bir deƒüerler listesinde olup olmadƒ±ƒüƒ±nƒ± kontrol eder. "in‚" Bir anahtarƒ±n s√∂zluk içinde olup olmadƒ±ƒüƒ±nƒ± kontrol etmek için anahtar kelime.