max() y√∂ntemi yalnƒ±zca, y√∂nteme en az bir deƒüer içeren bir dizi iletirseniz çalƒ±≈üƒ±r.
Bo≈ü bir listedeki en buyuk √∂ƒüeyi bulmaya çalƒ±≈üƒ±rsanƒ±z, "ValueError: max()
arg is a bo≈ü dizi‚" hatasƒ±yla kar≈üƒ±la≈üƒ±rsƒ±nƒ±z.
Bu kƒ±lavuzda, bu hatanƒ±n ne anlama geldiƒüi ve neden bu hatayla kar≈üƒ±la≈üabileceƒüiniz hakkƒ±nda konu≈üuyoruz. Bu hatayƒ± nasƒ±l ç√∂zeceƒüinizi anlamanƒ±za yardƒ±mcƒ± olacak bir √∂rnek uzerinden ilerliyoruz.
ValueError: max() arg boş bir dizidir
max()
y√∂ntemi, bir listedeki en buyuk √∂ƒüeyi bulmanƒ±zƒ± saƒülar. Listedeki en kuçuk √∂ƒüeyi bulan min()
yöntemine benzer.
Bu y√∂ntemin çalƒ±≈ümasƒ± için max()
en az bir deƒüere sahip bir diziye ihtiyaç duyar. Bunun nedeni, √∂ƒüe yoksa listedeki en buyuk √∂ƒüeyi bulamamanƒ±zdƒ±r. Aranacak √∂ƒüe olmadƒ±ƒüƒ± için en buyuk √∂ƒüe mevcut deƒüil.
"ValueError: max()
argumanƒ±nƒ±n bir varyasyonu bo≈ü bir sƒ±radƒ±r‚" min()
y√∂ntemine bo≈ü bir liste iletmeye çalƒ±≈ütƒ±ƒüƒ±nƒ±zda hata bulunur. Bu hata "ValueError: min()
arg bo≈ü bir dizidir‚". Bu min()
hatasƒ± aynƒ± nedenden dolayƒ± olu≈üur: deƒüer içermeyen bir listede en kuçuk deƒüeri bulamazsƒ±nƒ±z.
Örnek Senaryo
Biz‚Äô Bir √∂ƒürencinin tum kimya sƒ±navlarƒ±nda aldƒ±ƒüƒ± en yuksek notu bulan bir program olu≈üturacaƒüƒ±z. Ba≈ülamak için bir √∂ƒürenci listesi tanƒ±mlayƒ±n:
√ñƒürenci listemiz d√∂rt s√∂zluk içerir. Bu s√∂zlukler, her √∂ƒürencinin adƒ±nƒ± ve aldƒ±klarƒ± notlarƒ±n bir listesini içerir. Miranda’nƒ±n henuz bir notu yok çunku kimya sƒ±nƒ±fƒ±na yeni katƒ±ldƒ±.
Katƒ±lƒ±mcƒ±larƒ±n %81’i bir eƒüitim kampƒ±na katƒ±ldƒ±ktan sonra teknik i≈ü beklentileri konusunda kendilerini daha guvende 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ƒ±.
Sonra, bir for d√∂ngusu kullanƒ±n. √∂ƒürenci listemizdeki her √∂ƒürenciyi g√∂zden geçirmek ve her √∂ƒürencinin aldƒ±ƒüƒ± en yuksek notu ve her √∂ƒürencinin ortalama notunu bulmak için:
< √∂ƒürencinin aldƒ±ƒüƒ± en yuksek notu bulmak için code>max() i≈ülevi. Bir √∂ƒürencinin ortalama notunu hesaplamak için, tum notlarƒ±nƒ±n toplamƒ±nƒ± aldƒ±klarƒ± notlarƒ±n sayƒ±sƒ±na b√∂leriz.
round()
y√∂ntemini kullanarak her √∂ƒürencinin ortalama notunu en yakƒ±n tam sayƒ±ya yuvarlarƒ±z.Kodumuzu çalƒ±≈ütƒ±rƒ±n ve ne olduƒüunu g√∂run:
Kodumuz listemizdeki d√∂rduncu √∂ƒüeye ula≈üana kadar ba≈üarƒ±yla çalƒ±≈üƒ±r. Ron, Katy ve Rachel’ƒ±n en yuksek ve ortalama notlarƒ±nƒ± g√∂rebiliriz. Miranda için herhangi bir deƒüer g√∂remiyoruz.
Çözum
Kodumuz ilk uç √∂ƒürenci uzerinde çalƒ±≈üƒ±yor çunku bu √∂ƒürencilerin her birinin en az bir not içeren bir not listesi var. Miranda’nƒ±n henuz notu yok.
Miranda’nƒ±n notu olmadƒ±ƒüƒ±ndan, max()
işlevi yurutulemez. max()
boş bir listedeki en buyuk değeri bulamıyor.
Bu hatayƒ± ç√∂zmek için, notlarƒ± hesaplamaya çalƒ±≈ümadan √∂nce her bir not listesinin herhangi bir deƒüer içerip içermediƒüine bakƒ±n. bir listedeki en yuksek not. Bir liste deƒüer içermiyorsa, kullanƒ±cƒ±ya farklƒ± bir mesaj g√∂stermeliyiz.