Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन ValueError:अधिकतम () तर्क एक खाली अनुक्रम है समाधान

अधिकतम () विधि केवल तभी काम करती है जब आप विधि में कम से कम एक मान के साथ अनुक्रम पास करते हैं।

यदि आप किसी खाली सूची में सबसे बड़ा आइटम खोजने का प्रयास करते हैं, तो आपको "ValueError:max() त्रुटि का सामना करना पड़ेगा। arg एक खाली अनुक्रम है"।

इस गाइड में, हम इस बारे में बात करते हैं कि इस त्रुटि का क्या अर्थ है और आपको इसका सामना क्यों करना पड़ सकता है। इस त्रुटि को हल करने का तरीका जानने में आपकी सहायता के लिए हम एक उदाहरण के माध्यम से चलते हैं।

ValueError:max() arg एक खाली अनुक्रम है

max() विधि आपको सूची में सबसे बड़ा आइटम खोजने देती है। यह min() . के समान है विधि जो सूची में सबसे छोटी वस्तु ढूंढती है।

इस विधि के काम करने के लिए, max() कम से कम एक मान वाले अनुक्रम की आवश्यकता है। ऐसा इसलिए है क्योंकि यदि कोई आइटम नहीं है तो आप सूची में सबसे बड़ा आइटम नहीं ढूंढ सकते हैं। सबसे बड़ी वस्तु अस्तित्वहीन है क्योंकि खोजने के लिए कोई वस्तु नहीं है।

"ValueError:max() . का एक रूपांतर arg एक खाली अनुक्रम है” त्रुटि तब पाई जाती है जब आप min() में एक खाली सूची को पास करने का प्रयास करते हैं तरीका। यह त्रुटि है "ValueError:min() arg एक खाली अनुक्रम है"। यह min() त्रुटि उसी कारण से होती है:आप बिना किसी मान वाली सूची में सबसे छोटा मान नहीं ढूँढ सकते।

एक उदाहरण परिदृश्य

हम एक ऐसा प्रोग्राम बनाने जा रहे हैं जो एक छात्र द्वारा अपने सभी रसायन शास्त्र परीक्षणों में अर्जित उच्चतम ग्रेड पाता है। शुरू करने के लिए, छात्रों की एक सूची परिभाषित करें:

विद्यार्थी =[ { "नाम":"रॉन", "ग्रेड":[75, 92, 84]}, { "नाम":"कैटी", "ग्रेड":[92, 86, 81] }, { "नाम":"राहेल", "ग्रेड":[64, 72, 72] }, { "नाम":"मिरांडा", "ग्रेड":[] }]

छात्रों की हमारी सूची में चार शब्दकोश हैं। इन शब्दकोशों में प्रत्येक छात्र के नाम के साथ-साथ उनके द्वारा अर्जित ग्रेड की सूची भी होती है। मिरांडा के पास अभी तक कोई ग्रेड नहीं है क्योंकि वह अभी-अभी रसायन शास्त्र की कक्षा में शामिल हुई है।

81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।

बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।

इसके बाद, हमारे छात्रों की सूची में प्रत्येक छात्र के माध्यम से जाने के लिए लूप के लिए उपयोग करें और प्रत्येक छात्र द्वारा अर्जित उच्चतम ग्रेड और प्रत्येक छात्र का औसत ग्रेड खोजें:

छात्रों में s के लिए:उच्चतम_ग्रेड =अधिकतम (एस ["ग्रेड"]) औसत_ग्रेड =राउंड (योग (एस ["ग्रेड"]) / लेन (एस ["ग्रेड"])) प्रिंट ("उच्चतम ग्रेड { } ने {} अर्जित किया है। उनका औसत ग्रेड {}" है। प्रारूप(s["name"], उच्चतम_ग्रेड, औसत_ग्रेड))

हम max() . का उपयोग करते हैं एक छात्र द्वारा अर्जित उच्चतम ग्रेड को खोजने के लिए कार्य करता है। एक छात्र के औसत ग्रेड की गणना करने के लिए, हम उनके सभी ग्रेडों के योग को उनके द्वारा प्राप्त किए गए ग्रेडों की संख्या से विभाजित करते हैं।

हम round() . का उपयोग करके प्रत्येक छात्र के औसत ग्रेड को निकटतम पूर्ण संख्या में गोल करते हैं तरीका।

हमारा कोड चलाएँ और देखें कि क्या होता है:

रॉन ने जो उच्चतम ग्रेड अर्जित किया है वह 92 है। उनका औसत ग्रेड 84 है। कैटी ने जो उच्चतम ग्रेड अर्जित किया है वह 92 है। उनका औसत ग्रेड 86 है। रेचेल ने जो उच्चतम ग्रेड अर्जित किया है वह 72 है। उनका औसत ग्रेड 69 है। ट्रेसबैक ( सबसे हालिया कॉल अंतिम):फ़ाइल "main.py", पंक्ति 10, <मॉड्यूल> में 

हमारा कोड तब तक सफलतापूर्वक चलता है जब तक यह हमारी सूची में चौथे आइटम तक नहीं पहुंच जाता। हम रॉन, कैटी और रेचेल के उच्चतम और औसत ग्रेड देख सकते हैं। हम मिरांडा के लिए कोई मूल्य नहीं देख सकते हैं।

समाधान

हमारा कोड पहले तीन छात्रों पर काम करता है क्योंकि उन छात्रों में से प्रत्येक के पास कम से कम एक ग्रेड वाले ग्रेड की सूची होती है। मिरांडा के पास अभी तक कोई ग्रेड नहीं है।

क्योंकि मिरांडा के पास कोई ग्रेड नहीं है, max() फ़ंक्शन निष्पादित करने में विफल रहता है। max() खाली सूची में सबसे बड़ा मान नहीं ढूँढ सकता।

इस त्रुटि को हल करने के लिए, किसी सूची में उच्चतम ग्रेड की गणना करने का प्रयास करने से पहले देखें कि ग्रेड की प्रत्येक सूची में कोई मान है या नहीं। यदि किसी सूची में कोई मान नहीं है, तो हमें उपयोगकर्ता को एक अलग संदेश दिखाना चाहिए।

कोई गणना करने से पहले किसी छात्र के पास कोई ग्रेड है या नहीं, यह जांचने के लिए "if" कथन का उपयोग करें:

छात्रों में s के लिए:if len(s["grades"])> 0:high_grad =max(s["grade"]) औसत_ग्रेड =राउंड (योग(s["ग्रेड"]) / len(s[ "ग्रेड"])) प्रिंट ("उच्चतम ग्रेड {} ने अर्जित किया है {}। उनका औसत ग्रेड {}" है। प्रारूप (एस ["नाम"], उच्चतम_ग्रेड, औसत_ग्रेड)) अन्य:प्रिंट ("{} कोई ग्रेड अर्जित नहीं किया है।".format(s["name"]))

उपरोक्त हमारा कोड केवल एक छात्र के उच्चतम और औसत ग्रेड की गणना करेगा यदि उन्होंने कम से कम एक ग्रेड अर्जित किया है। अन्यथा, उपयोगकर्ता को सूचित किया जाएगा कि छात्र ने कोई ग्रेड अर्जित नहीं किया है। आइए अपना कोड चलाएं:

रॉन ने जो उच्चतम ग्रेड अर्जित किया है वह 92 है। उनका औसत ग्रेड 84 है। कैटी ने जो उच्चतम ग्रेड अर्जित किया है वह 92 है। उनका औसत ग्रेड 86 है। रेचेल ने अर्जित उच्चतम ग्रेड 72 है। उनका औसत ग्रेड 69 है। मिरांडा ने कोई ग्रेड अर्जित नहीं किया।

हमारा कोड हमारे पहले तीन छात्रों के लिए उच्चतम और औसत ग्रेड की सफलतापूर्वक गणना करता है। जब हमारा कोड मिरांडा तक पहुंचता है, तो हमारा कोड उसके उच्चतम और औसत ग्रेड की गणना नहीं करता है। इसके बजाय, हमारा कोड हमें सूचित करता है कि मिरांडा ने अभी तक कोई ग्रेड अर्जित नहीं किया है।

निष्कर्ष

"ValueError:max() arg एक खाली अनुक्रम है” त्रुटि तब उत्पन्न होती है जब आप max() का उपयोग करके किसी खाली सूची में सबसे बड़ा आइटम खोजने का प्रयास करते हैं तरीका।

इस त्रुटि को हल करने के लिए, सुनिश्चित करें कि आप केवल max() . के माध्यम से कम से कम एक मान वाली सूचियां पास करते हैं बयान। अब आपके पास एक पेशेवर कोडर की तरह इस समस्या को ठीक करने के लिए आवश्यक ज्ञान है!


  1. पायथन में एक खाली टपल कैसे बनाएं?

    आप असाइनमेंट स्टेटमेंट में कोष्ठक में कोई तत्व नहीं देकर खाली टपल ऑब्जेक्ट बना सकते हैं। खाली टपल ऑब्जेक्ट भी बिना किसी तर्क के tuple() बिल्ट-इन फ़ंक्शन द्वारा बनाया जाता है >>> T1 = () >>> T1 () >>> T1 = tuple() >>> T1 ()

  1. पायथन में एक खाली शब्दकोश कैसे बनाएं?

    आप असाइनमेंट स्टेटमेंट में कर्ली ब्रैकेट्स में कोई एलिमेंट नहीं देकर खाली डिक्शनरी ऑब्जेक्ट बना सकते हैं। खाली डिक्शनरी ऑब्जेक्ट भी बिना किसी तर्क के dict() बिल्ट-इन फंक्शन द्वारा बनाया जाता है >>> L1 [] >>> d1 = {} >>> d1 {} >>> d1 = dict() >>> d1 {}

  1. पायथन में एक खाली सूची कैसे बनाएं?

    आप असाइनमेंट स्टेटमेंट में वर्ग कोष्ठक में कोई तत्व नहीं देकर खाली सूची वस्तु बना सकते हैं। खाली सूची वस्तु भी बिना किसी तर्क के सूची () अंतर्निहित फ़ंक्शन द्वारा बनाई जाती है >>> L1 = [] >>> L1 [] >>> L1 = list() >>> L1 []