Python yok

Python ile bir nesneyi yalnƒ±zca o nesnenin bir deƒüeri varsa yineleyebilirsiniz. Bunun nedeni, yinelenebilir nesnelerin yalnƒ±zca deƒüerleri Yok’a e≈üit deƒüilse eri≈üilebilen bir sonraki √∂ƒüeye sahip olmasƒ±dƒ±r. Bir None nesnesi uzerinde yineleme yapmaya çalƒ±≈üƒ±rsanƒ±z, TypeError: ‚ÄòNoneType‚Äô object is iterable deƒüil hatasƒ±.

Bu kƒ±lavuzda, bu hatanƒ±n ne anlama geldiƒüinden ve neden kar≈üƒ±la≈üabileceƒüinizden bahsediyoruz. Bu yaygƒ±n Python hatasƒ±nƒ± nasƒ±l ç√∂zeceƒüinizi ç√∂zmenize yardƒ±mcƒ± olacak bir √∂rnek uzerinden ilerliyoruz.

TypeError: ‘NoneType’ nesne yinelenebilir değil

Bir nesnenin yinelenebilir olmasƒ± için bir deƒüer içermesi gerekir. Hiçbiri deƒüeri, herhangi bir nesne içermediƒüinden yinelenemez. Yok bir bo≈ü deƒüeri temsil eder.

Yok bir nesne ile boş yinelenebilir arasında bir fark vardır. Herhangi bir boş listeniz veya bir dizginiz varsa bu hata oluşmaz.

Bunun nedeni listelerin ve dizeler yinelenebilir bir veri turune sahiptir. Python yorumlayƒ±cƒ±sƒ± bo≈ü bir listeyle kar≈üƒ±la≈ütƒ±ƒüƒ±nda, deƒüer olmadƒ±ƒüƒ± için uzerinde yineleme yapmaz. Python, Yok deƒüeri uzerinde yinelenemez, bu nedenle yorumlayƒ±cƒ± bir hata d√∂ndurur.

Bu hata, bir işlev bildirdiğinizde ve bir değer döndurmeyi unuttuğunuzda yaygındır.

Örnek Senaryo

√ñƒürenci adlarƒ±nƒ±n bir listesini alan ve "E‚" ile ba≈ülayanlarƒ± filtreleyen bir program yazalƒ±m. Bu deƒüerleri konsola yazdƒ±racaƒüƒ±z.

Öğrencileri filtreleyen bir işlev tanımlayarak başlayın. isimler:

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≈üin.

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ƒ±.

Bu i≈ülev her √∂ƒüede d√∂ngu yapar. "sƒ±nƒ±f_adlarƒ±‚" for d√∂ngusu kullanarak listeleyin. Her √∂ƒüe için d√∂ngumuz, √∂ƒüenin "E‚" harfiyle ba≈ülayƒ±p ba≈ülamadƒ±ƒüƒ±nƒ± kontrol eder. Varsa, bu ad "new_class_names‚" liste.

Sonra, yeni listemizden geçen ve her deƒüeri konsola yazdƒ±ran bir fonksiyon yazƒ±n:

Burada bir öğrenci listesi ilan ediyoruz Bu öğrenci listesini filter_students fonksiyonumuz aracılığıyla iletiyoruz:

Bu kod, adlarƒ± ile ba≈ülayan tum √∂ƒürencileri bulan filter_students i≈ülevini çalƒ±≈ütƒ±rƒ±r. "E‚". Adlarƒ± "E‚" ile ba≈ülayan √∂ƒürencilerin listesine √∂ƒürenciler_e_adƒ± denir. Ardƒ±ndan, g√∂steri_√∂ƒürencileri i≈ülevimizi çaƒüƒ±rƒ±rƒ±z. yeni √∂ƒürenci listesini g√∂ster:

Kodumuzu çalƒ±≈ütƒ±ralƒ±m ve ne olduƒüunu g√∂relim:

Kodumuz bir hata mesajı veriyor.

Çözum

Sƒ±nƒ±ftaki deƒüi≈üken sƒ±nƒ±f_adƒ± uzerinde yineleme yapmaya çalƒ±≈ütƒ±ƒüƒ±mƒ±zda show_students i≈ülevi, kodumuz bir Yok deƒüeri algƒ±lar ve bir hata verir. Bunun nedeni, "class_names‚" olarak ilettiƒüimiz deƒüerdir. Yoktur.

Bu hata, filter_students işlevimizin bir değer döndurmemesi nedeniyle oluşur. Student_e_name değişkenine filter_students fonksiyonunun sonucunu atadığımızda, None değeri ayarlanır.

Bu hatayƒ± ç√∂zmek için yapmalƒ±yƒ±z. filter_students i≈ülevimizde bir deƒüer d√∂ndur:

Bu kod, yeni_class_names değerini ana programa geri döndurur.< br>

√áalƒ±≈üƒ±p çalƒ±≈ümadƒ±ƒüƒ±nƒ± g√∂rmek için kodumuzu çalƒ±≈ütƒ±ralƒ±m:

Kodumuz & ile ba≈ülayan √∂ƒürencilerin isimlerini ba≈üarƒ±yla yazdƒ±rƒ±yor. ldquo;E‚".

NoneType ƒ∞stisnasƒ±ndan Ka烱nma

Teknik olarak, bir deƒüerin Yok’a e≈üit olup olmadƒ±ƒüƒ±nƒ± kontrol ederek NoneType istisnasƒ±nƒ± √∂nleyebilirsiniz. bu deƒüeri yinelemeden √∂nce. ≈ûu kodu g√∂z √∂nunde bulundurun:

"show_students()‚" i≈ülevi ba≈üarƒ±yla yurutulur çunku biz uzerinde yineleme yapmaya çalƒ±≈ümadan √∂nce class_names bir None deƒüeri olup olmadƒ±ƒüƒ±nƒ± kontrol edin.Bu en iyi pra deƒüil √áoƒüu durumda, bir NoneType hatasƒ±nƒ±n nedeni kodunuzdaki ba≈üka bir yerde sorun olabileceƒüinden, bu i≈ülemi uygulayƒ±n.

Eƒüer "is not None‚" tam programƒ±mƒ±za g√∂z atƒ±n, ba≈üka bir fonksiyonda bir return ifadesini ka烱rdƒ±ƒüƒ±mƒ±zƒ± bilmiyoruz. Bu nedenle, bu hatayƒ± g√∂rurseniz, istisnayƒ± "hiçbiri deƒüildir‚" kontrol edin.



Sonuç

TypeError: ‚ÄòNoneType‚Äô Nesne yinelenemez deƒüeri Yok’a e≈üit olan bir nesne uzerinde yineleme yapmaya çalƒ±≈ütƒ±ƒüƒ±nƒ±zda hata olu≈üur.

Bu hatayƒ± ç√∂zmek için, denediƒüiniz tum deƒüerlerin doƒüru olduƒüundan emin olun. yineleme, bir dize veya liste gibi yinelenebilir bir nesneye atanmƒ±≈ütƒ±r. √ñrneƒüimizde, bir "return‚" eklemeyi unuttuk. bir fonksiyon için ifade. Bu, i≈ülevin bir liste yerine Yok d√∂ndurmesini saƒüladƒ±.

Artƒ±k bu yaygƒ±n Python hatasƒ±nƒ± kendi kodunuzla ç√∂zmeye hazƒ±rsƒ±nƒ±z.

"Python.Engineeringsƒ± hayatƒ±ma girdi. en çok ihtiyacƒ±m olduƒüunda ve hƒ±zlƒ± bir ≈üekilde bir eƒüitim kampƒ±yla e≈üle≈ümeme yardƒ±mcƒ± oldu. Mezun olduktan iki ay sonra, hayattaki deƒüerlerim ve hedeflerime uygun hayalimdeki i≈üi buldum!"

Venus, Rockbot’ta Yazƒ±lƒ±m Muhendisi

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method