কম্পিউটার

Python ValueError:max() arg হল একটি খালি সিকোয়েন্স সলিউশন

max() পদ্ধতিটি তখনই কাজ করে যখন আপনি পদ্ধতিতে কমপক্ষে একটি মান সহ একটি ক্রম পাস করেন।

আপনি যদি একটি খালি তালিকার মধ্যে সবচেয়ে বড় আইটেমটি খুঁজে বের করার চেষ্টা করেন, তাহলে আপনি "ValueError:max() ত্রুটির সম্মুখীন হবেন arg একটি খালি ক্রম"।

এই নির্দেশিকায়, আমরা এই ত্রুটির অর্থ কী এবং কেন আপনি এটির সম্মুখীন হতে পারেন সে সম্পর্কে কথা বলি৷ এই ত্রুটিটি কীভাবে সমাধান করা যায় তা খুঁজে বের করতে আমরা একটি উদাহরণ দিয়ে চলেছি৷

ValueError:max() arg হল একটি খালি ক্রম

max() পদ্ধতি আপনাকে একটি তালিকার বৃহত্তম আইটেম খুঁজে পেতে দেয়। এটি min() এর অনুরূপ পদ্ধতি যা একটি তালিকার সবচেয়ে ছোট আইটেম খুঁজে বের করে।

এই পদ্ধতিটি কাজ করার জন্য, max() অন্তত একটি মান সহ একটি ক্রম প্রয়োজন। এর কারণ হল কোন আইটেম না থাকলে আপনি একটি তালিকায় সবচেয়ে বড় আইটেম খুঁজে পাবেন না। সবচেয়ে বড় আইটেমটি অস্তিত্বহীন কারণ অনুসন্ধান করার মতো কোনো আইটেম নেই৷

“ValueError:max()-এর একটি পরিবর্তন arg হল একটি খালি ক্রম” ত্রুটি পাওয়া যায় যখন আপনি একটি খালি তালিকা min()-এ পাস করার চেষ্টা করেন পদ্ধতি এই ত্রুটিটি হল “ValueError:min() arg একটি খালি ক্রম"। এই min() একই কারণে ত্রুটি ঘটে:আপনি কোনো মান ছাড়াই তালিকায় ক্ষুদ্রতম মান খুঁজে পাবেন না।

একটি উদাহরণ দৃশ্য

আমরা এমন একটি প্রোগ্রাম তৈরি করতে যাচ্ছি যা একটি ছাত্র তাদের সমস্ত রসায়ন পরীক্ষায় সর্বোচ্চ গ্রেড অর্জন করেছে। শুরু করতে, ছাত্রদের একটি তালিকা নির্ধারণ করুন:

students = [
	   { "name": "Ron", "grades": [75, 92, 84] },
	   { "name": "Katy", "grades": [92, 86, 81] },
	   { "name": "Rachel", "grades": [64, 72, 72] },
	   { "name": "Miranda", "grades": [] }
]

আমাদের শিক্ষার্থীদের তালিকায় চারটি অভিধান রয়েছে। এই অভিধানগুলিতে প্রতিটি ছাত্রের নাম এবং সেইসাথে তারা যে গ্রেড অর্জন করেছে তার একটি তালিকা রয়েছে। মিরান্ডার এখনও কোনো গ্রেড নেই কারণ সে সবেমাত্র রসায়ন ক্লাসে যোগ দিয়েছে।

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।

এরপর, আমাদের শিক্ষার্থীদের তালিকায় প্রতিটি শিক্ষার্থীর মধ্য দিয়ে যাওয়ার জন্য একটি লুপ ব্যবহার করুন এবং প্রতিটি শিক্ষার্থীর সর্বোচ্চ গ্রেড এবং প্রতিটি শিক্ষার্থীর গড় গ্রেড খুঁজে বের করুন:

for s in students:
	     highest_grade = max(s["grades"])
	     average_grade = round(sum(s["grades"]) / len(s["grades"]))
	     print("The highest grade {} has earned is {}. Their average grade is {}.".format(s["name"], highest_grade, average_grade))

আমরা max() ব্যবহার করি একটি ছাত্র অর্জিত সর্বোচ্চ গ্রেড খুঁজে ফাংশন. একজন শিক্ষার্থীর গড় গ্রেড গণনা করতে, আমরা তাদের প্রাপ্ত গ্রেডের সংখ্যা দ্বারা তাদের সমস্ত গ্রেডের মোটকে ভাগ করি।

আমরা round() ব্যবহার করে প্রতিটি শিক্ষার্থীর গড় গ্রেডকে নিকটতম পূর্ণ সংখ্যায় রাউন্ড করি পদ্ধতি

আমাদের কোড চালান এবং দেখুন কি হয়:

The highest grade Ron has earned is 92. Their average grade is 84.
The highest grade Katy has earned is 92. Their average grade is 86.
The highest grade Rachel has earned is 72. Their average grade is 69.
Traceback (most recent call last):
  File "main.py", line 10, in <module>
	     highest_grade = max(s["grades"])
ValueError: max() arg is an empty sequence

আমাদের কোড সফলভাবে চলে যতক্ষণ না এটি আমাদের তালিকার চতুর্থ আইটেমে পৌঁছায়। আমরা রন, ক্যাটি এবং রাচেলের সর্বোচ্চ এবং গড় গ্রেড দেখতে পাচ্ছি। আমরা মিরান্ডার জন্য কোন মান দেখতে পাচ্ছি না।

সমাধান

আমাদের কোড প্রথম তিনজন ছাত্রের উপর কাজ করে কারণ সেই ছাত্রদের প্রত্যেকের কাছে অন্তত একটি গ্রেড সহ গ্রেডের তালিকা রয়েছে। মিরান্ডার এখনো কোনো গ্রেড নেই।

কারণ মিরান্ডার কোনো গ্রেড নেই, max() ফাংশন কার্যকর করতে ব্যর্থ হয়। max() খালি তালিকায় সবচেয়ে বড় মান খুঁজে পাওয়া যাবে না।

এই ত্রুটিটি সমাধান করতে, আমরা একটি তালিকায় সর্বোচ্চ গ্রেড গণনা করার চেষ্টা করার আগে গ্রেডের প্রতিটি তালিকায় কোনো মান আছে কিনা তা দেখুন। যদি কোনো তালিকায় কোনো মান না থাকে, তাহলে আমাদের ব্যবহারকারীকে একটি ভিন্ন বার্তা দেখাতে হবে।

কোনো গণনা করার আগে একজন শিক্ষার্থীর কোনো গ্রেড আছে কিনা তা পরীক্ষা করার জন্য আসুন একটি "if" বিবৃতি ব্যবহার করি:

for s in students:
	     if len(s["grades"]) > 0:
	               highest_grade = max(s["grades"])
	               average_grade = round(sum(s["grades"]) / len(s["grades"]))
	               print("The highest grade {} has earned is {}. Their                average grade is {}.".format(s["name"], highest_grade, average_grade))
	     else:
		           print("{} has not earned any grades.".format(s["name"]))

আমাদের উপরের কোডটি শুধুমাত্র একজন শিক্ষার্থীর সর্বোচ্চ এবং গড় গ্রেড গণনা করবে যদি তারা কমপক্ষে একটি গ্রেড অর্জন করে থাকে। অন্যথায়, ব্যবহারকারীকে জানানো হবে যে শিক্ষার্থী কোনো গ্রেড অর্জন করেনি। আমাদের কোড রান করা যাক:

The highest grade Ron has earned is 92. Their average grade is 84.
The highest grade Katy has earned is 92. Their average grade is 86.
The highest grade Rachel has earned is 72. Their average grade is 69.
Miranda has not earned any grades.

আমাদের কোড সফলভাবে আমাদের প্রথম তিনজন ছাত্রের জন্য সর্বোচ্চ এবং গড় গ্রেড গণনা করে। যখন আমাদের কোড মিরান্ডায় পৌঁছায়, তখন আমাদের কোড তার সর্বোচ্চ এবং গড় গ্রেড গণনা করে না। পরিবর্তে, আমাদের কোড আমাদের জানায় যে মিরান্ডা এখনও কোন গ্রেড অর্জন করেনি।

উপসংহার

“ValueError:max() arg হল একটি খালি ক্রম” ত্রুটি উত্থাপিত হয় যখন আপনি max() ব্যবহার করে একটি খালি তালিকার বৃহত্তম আইটেম খুঁজে বের করার চেষ্টা করেন। পদ্ধতি

এই ত্রুটিটি সমাধান করতে, নিশ্চিত করুন যে আপনি শুধুমাত্র একটি max() এর মাধ্যমে কমপক্ষে একটি মান সহ তালিকা পাস করেছেন বিবৃতি একজন পেশাদার কোডারের মতো এই সমস্যাটি সমাধান করার জন্য আপনার প্রয়োজনীয় জ্ঞান এখন আপনার আছে!


  1. পাইথনে একটি তালিকা প্রিন্ট করুন

  2. পাইথনে একটি খালি টিপল কীভাবে তৈরি করবেন?

  3. কিভাবে পাইথনে একটি খালি অভিধান তৈরি করবেন?

  4. কিভাবে পাইথনে একটি খালি তালিকা তৈরি করবেন?