python · Python
संदेश
ZeroDivisionError: division by zero
इसका मतलब
किसी चीज़ को शून्य से भाग दिया गया — और व्यवहार में भाजक कोई अक्षरशः शून्य नहीं होता, वह गिनती होती है जो शून्य निकली। औसत निकालने वाला कोड जहाँ सूची ख़ाली रह गई, या ऐसा filter जिससे कुछ न मिला, इसका शास्त्रीय स्रोत है: विकास के डेटा पर यह हमेशा पास होता है और पहली बार production में गिरता है। भाग देने से पहले भाजक जाँचें और तय करें कि वहाँ शून्य का अर्थ क्या है; 0 लौटाना, None लौटाना, और अपवाद को ऊपर जाने देना तीन अलग निर्णय हैं, और हर एक कहीं सही है।
सुधार
इसका एक-लाइन कमांड नहीं है। व्याख्या में लिखा है कि क्या देखना है।
- कौन देता है
- python
- Python
- 18
Python का traceback उत्तर को दो हिस्सों में बाँटता है — अंतिम पंक्ति बताती है कि क्या ग़लत हुआ, और उसके ऊपर के frames बताते हैं कि कहाँ — इसलिए केवल अंतिम पंक्ति पढ़ने पर नाम मिलता है और जगह छूट जाती है; और NoneType तथा KeyError जैसी "मान नहीं है" वाली त्रुटियों में कारण लगभग हमेशा उस frame से ऊपर होता है जहाँ गिरा।
एरर संदेश कैसे पढ़ें
- पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
- फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
- संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
- वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
- कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।
अक्सर पूछे जाने वाले सवाल
Q. “ZeroDivisionError: division by zero” का क्या मतलब है?
किसी चीज़ को शून्य से भाग दिया गया — और व्यवहार में भाजक कोई अक्षरशः शून्य नहीं होता, वह गिनती होती है जो शून्य निकली। औसत निकालने वाला कोड जहाँ सूची ख़ाली रह गई, या ऐसा filter जिससे कुछ न मिला, इसका शास्त्रीय स्रोत है: विकास के डेटा पर यह हमेशा पास होता है और पहली बार production में गिरता है। भाग देने से पहले भाजक जाँचें और तय करें कि वहाँ शून्य का अर्थ क्या है; 0 लौटाना, None लौटाना, और अपवाद को ऊपर जाने देना तीन अलग निर्णय हैं, और हर एक कहीं सही है।
Q. इसे कैसे ठीक करें?
एक-लाइन कमांड नहीं है। ऊपर की व्याख्या में लिखा है कि क्या देखना है।
Q. यह कौन-सा औज़ार देता है?
python। यह Python में आता है, और संदेश 4 शब्दों का है।