होम·एरर संदेश

python · Python

संदेश

ValueError: invalid literal for int() with base 10: '3.5'

इसका मतलब

आपने int() को ऐसी string दी जिसे वह पूर्ण संख्या के रूप में नहीं पढ़ सकता, और उद्धरण के भीतर का पाठ वही string है। '3.5' जैसा दशमलव बिंदु, ख़ाली string, अंत में newline वाला इनपुट, या '1,000' जैसा हज़ार का विभाजक आम कारण हैं। दशमलव के लिए int(float(s)) दो चरणों में चलता है — पर यह गोल करने की जगह भिन्नात्मक भाग काट देता है — और किसी व्यक्ति द्वारा टाइप किए मान के लिए try/except ValueError में लपेटना ही ईमानदार उपाय है।

सुधार

इसका एक-लाइन कमांड नहीं है। व्याख्या में लिखा है कि क्या देखना है।

कौन देता है
python
Python
18

Python का traceback उत्तर को दो हिस्सों में बाँटता है — अंतिम पंक्ति बताती है कि क्या ग़लत हुआ, और उसके ऊपर के frames बताते हैं कि कहाँ — इसलिए केवल अंतिम पंक्ति पढ़ने पर नाम मिलता है और जगह छूट जाती है; और NoneType तथा KeyError जैसी "मान नहीं है" वाली त्रुटियों में कारण लगभग हमेशा उस frame से ऊपर होता है जहाँ गिरा।

एरर संदेश कैसे पढ़ें

  • पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
  • फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
  • संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
  • वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
  • कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।

अक्सर पूछे जाने वाले सवाल

Q. “ValueError: invalid literal for int() with base 10: '3.5'” का क्या मतलब है?

आपने int() को ऐसी string दी जिसे वह पूर्ण संख्या के रूप में नहीं पढ़ सकता, और उद्धरण के भीतर का पाठ वही string है। '3.5' जैसा दशमलव बिंदु, ख़ाली string, अंत में newline वाला इनपुट, या '1,000' जैसा हज़ार का विभाजक आम कारण हैं। दशमलव के लिए int(float(s)) दो चरणों में चलता है — पर यह गोल करने की जगह भिन्नात्मक भाग काट देता है — और किसी व्यक्ति द्वारा टाइप किए मान के लिए try/except ValueError में लपेटना ही ईमानदार उपाय है।

Q. इसे कैसे ठीक करें?

एक-लाइन कमांड नहीं है। ऊपर की व्याख्या में लिखा है कि क्या देखना है।

Q. यह कौन-सा औज़ार देता है?

python। यह Python में आता है, और संदेश 9 शब्दों का है।

साथ आने वाले एरर