Python değer hatası

Python çantalarƒ± iyi açmƒ±yor. "deƒüer hatasƒ±: paketinden 烱karƒ±lacak çok fazla deƒüer (beklenen 2)‚" hatasƒ±nƒ± g√∂rmeniz, Python’un bir bavulu açtƒ±ƒüƒ± anlamƒ±na gelmez. Bu, bir yineleyiciden çok fazla deƒüere eri≈ümeye çalƒ±≈ütƒ±ƒüƒ±nƒ±z anlamƒ±na gelir.

Bu kƒ±lavuzda, bu hatanƒ±n ne anlama geldiƒüi ve neden ortaya 烱ktƒ±ƒüƒ± hakkƒ±nda konu≈üuyoruz. Nasƒ±l ç√∂zeceƒüinizi √∂ƒürenebilmeniz için bu hatayƒ± içeren √∂rnek bir kod parçasƒ± uzerinden geçiyoruz.

Sorun: valueerror: paketten 烱karƒ±lacak çok fazla deƒüer (beklenen 2)

ValueError: var olmayan bir deƒüerden bilgiye eri≈ümeye çalƒ±≈ütƒ±ƒüƒ±nƒ±zda ortaya 烱kar. Deƒüerler, bir liste, bir dize veya s√∂zluk gibi herhangi bir nesne olabilir.

Şuna bir göz atalım. hata mesajımız:

Python’da, "unpacking‚" bir deƒüerden √∂ƒüelerin alƒ±nmasƒ±nƒ± ifade eder. √ñrneƒüin, bir listeden √∂ƒüelerin alƒ±nmasƒ±na "paket açma‚" o liste. ƒ∞çeriƒüini g√∂runtuler ve her bir √∂ƒüeye tek tek eri≈üirsiniz.

Yukarƒ±daki hata mesajƒ±, bir deƒüerden çok fazla deƒüeri açmaya çalƒ±≈ütƒ±ƒüƒ±mƒ±zƒ± s√∂yluyor.

Genellikle bu hataya neden olan iki hata vardır:

Bu senaryoların her birine ayrı ayrı bakıyoruz.

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

Yinelemeye çalƒ±≈üalƒ±m. bir s√∂zluk uzerinden. √úzerinde tekrar edeceƒüimiz s√∂zluk, periyodik tablodaki bir element hakkƒ±nda bilgi depolayacaktƒ±r. √ñnce s√∂zluƒüumuzu tanƒ±mlayalƒ±m:

S√∂zluƒüumuzun uç anahtarƒ± ve uç deƒüeri vardƒ±r. Tu≈ülar iki nokta ust uste i≈üaretinin solundadƒ±r; deƒüerler kolonlarƒ±n saƒüƒ±ndadƒ±r. Hem anahtarlarƒ± hem de deƒüerleri konsola yazdƒ±rmak istiyoruz. Bunu yapmak için bir for d√∂ngusu kullanƒ±rƒ±z:

Bu d√∂ngude "hidrojen‚" iki deƒüere: anahtar ve deƒüer. "anahtar‚" s√∂zluƒüumuzdeki tu≈ülara ve "deƒüer‚" deƒüerlere kar≈üƒ±lƒ±k gelecek.

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

Kodumuz bir hata dönduruyor.

Bunun nedeni, "hidrojen‚" s√∂zluƒüundeki her √∂ƒüenin bir deƒüer olmasƒ±dƒ±r. Anahtarlar ve deƒüerler, s√∂zlukte iki ayrƒ± deƒüer deƒüildir.

Bu hatayƒ± items() adlƒ± bir y√∂ntem kullanarak ç√∂zuyoruz. Bu y√∂ntem bir s√∂zluƒüu analiz eder ve anahtarlarƒ± d√∂ndurur ve deƒüerler demet olarak depolanƒ±r. Bu y√∂ntemi kodumuza ekleyelim:

≈ûimdi kodumuzu yeniden çalƒ±≈ütƒ±rmayƒ± deneyelim:

items() y√∂ntemini ekledik "hidrojen"in sonuna kadar. Bu, tuple olarak depolanan anahtar/deƒüer çiftleriyle s√∂zluƒüumuze d√∂ner. Bunu, hidrogen.items() içeriƒüini konsola yazdƒ±rarak g√∂rebiliriz:

Kodumuz şunu döndurur:

< p>Her anahtar ve değer kendi tanımlama grubunda saklanır.

Python 2.x için bir Not

Python 2.x, items() yerine iteritems() kullanƒ±rsƒ±nƒ±z. Bu, √∂nceki √∂rnekte elde ettiƒüimiz sonucun aynƒ±sƒ±nƒ± elde eder. items() y√∂ntemine Python 2.x’te h√¢l√¢ eri≈üilebilir.

Yukarƒ±da, biz items() yerine iteritems() kullanƒ±n. Kodumuzu çalƒ±≈ütƒ±ralƒ±m:

Anahtarlarƒ±mƒ±z ve deƒüerlerimiz "hidrojen‚" s√∂zluk. Bu, her anahtarƒ± ve deƒüeri konsola ayrƒ± ayrƒ± yazdƒ±rmamƒ±zƒ± saƒülar.

Python 2.x kullanımdan kaldırılmaya başlıyor. Mumkun olduğunda daha modern yöntemler kullanmak en iyisidir. Bu, items() öğesinin genellikle iteritems() yerine tercih edildiği anlamına gelir.

√ñrnek: Deƒüerleri Bir Deƒüi≈ükene Açma

bir listeyi bir deƒüi≈ükene açmak için, liste √∂ƒüelerini açtƒ±ƒüƒ±nƒ±z deƒüi≈ükenlerin sayƒ±sƒ± listedeki √∂ƒüelerin sayƒ±sƒ±na e≈üit olmalƒ±dƒ±r. Aksi takdirde bir hata d√∂ndurulur.

Yerel bir donut mağazasında donut fiyatlarını saklayan kayan noktalı sayıların bir listesi var:< /p>

Bu deƒüerleri kendi deƒüi≈ükenlerine a烱yoruz.Bu deƒüerlerin her biri maƒüaza tarafƒ±ndan satƒ±lan a≈üaƒüƒ±daki donutlara kar≈üƒ±lƒ±k geliyor:

"Python.Engineering hayatƒ±ma en çok ihtiyacƒ±m olduƒüu anda girdi ve hƒ±zlƒ± bir ≈üekilde e≈üle≈ütirmeme yardƒ±mcƒ± oldu. bir bootcamp ile. Mezun olduktan iki ay sonra, hayattaki deƒüerlerim ve hedeflerime uygun hayalimdeki i≈üi buldum!"

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

< p>Listemizi d√∂rt deƒüi≈ükene ayƒ±rƒ±yoruz. Bu, her fiyatƒ± kendi deƒüi≈ükeninde saklamamƒ±za izin veriyor. Listemizi açalƒ±m:

Bu kod listemizi ≈üu ≈üekilde açar: d√∂rt deƒüi≈üken.Her deƒüi≈üken farklƒ± bir halkaya kar≈üƒ±lƒ±k gelir.Kodumuzun çalƒ±≈üƒ±p çalƒ±≈ümadƒ±ƒüƒ±nƒ± kontrol etmek için "yabanmersini‚" deƒüerini konsola yazdƒ±rƒ±yoruz.Kodumuzu çalƒ±≈ütƒ±rƒ±n ve ne olduƒüunu g√∂run:

D√∂rt deƒüeri açmaya çalƒ±≈üƒ±yoruz, listemiz be≈ü deƒüer içeriyor. Python, deƒüi≈ükenlerimize hangi deƒüerleri atayacaƒüƒ±nƒ± bilmiyor çunku sadece d√∂rt deƒüeri a烱yoruz. Bu bir hataya neden olur.

Listemizdeki son deƒüer çikolatalƒ± ç√∂rek fiyatƒ±dƒ±r. Listeyi açmak için ba≈üka bir deƒüi≈üken belirleyerek hatamƒ±zƒ± ç√∂zuyoruz:

Kodumuz ≈üunu d√∂ndurur: 2.1. Kodumuz, listemizdeki deƒüerleri ba≈üarƒ±yla açar.

Sonuç

"deƒüer hatasƒ±: paketi açmak için çok fazla deƒüer (beklenen 2)‚" hata, bir listedeki tum √∂ƒüeleri paketinden 烱karmadƒ±ƒüƒ±nƒ±zda olu≈üur.

Bu hataya genellikle bir s√∂zlukteki √∂ƒüeler uzerinde yineleme yapmaya çalƒ±≈ümak neden olur. Bu sorunu ç√∂zmek için, bir s√∂zluk uzerinde yineleme yapmak için items() y√∂ntemini kullanƒ±n.

Diƒüer bir yaygƒ±n neden, yeterli deƒüi≈üken atamadan çok fazla deƒüeri deƒüi≈ükenlere açmaya çalƒ±≈ümanƒ±zdƒ±r. unpacked, listedeki √∂ƒüe sayƒ±sƒ±na e≈üittir.

Artƒ±k bu Python hatasƒ±nƒ± kodlama ninjasƒ± gibi ç√∂zmeye hazƒ±rsƒ±nƒ±z. !

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