दिलचस्प पोस्ट
मैं जेएस को आवेदन रूट के बारे में कैसे जान सकता हूं? MATLAB में एक निश्चित सीमा में एक यादृच्छिक संख्या उत्पन्न करें स्व-जुड़ने की व्याख्या मैं PHP में PHP के लिए लाइन X से कैसे फाइल खोलूँ? आईपैड में वॉलपेपर बदलने के लिए कैसे? कई दूरस्थ स्थानों से पुल / पुश करें एक्सेल फ़ाइल (.xlsx) के लिए कुछ डेटा कैसे लिखें MySQL क्वेरी – आज और अंतिम 30 दिनों के बीच रिकॉर्ड पायथन में फ़ंक्शन कॉल के निष्पादन समय को कैसे सीमित करें सी # /। नेट में स्थानीय मशीन का एफक्यूडीएन कैसे निकालना है? किसी अन्य एप्लिकेशन में गतिविधि कैसे प्रारंभ करें? जावा में दो सूची <स्ट्रिंग> के कुशल प्रतिच्छेदन? अंदर चुने जाने का चयन करें I ब्राउज़र से ग्राहक समय क्षेत्र प्राप्त करें html2canvas Google मानचित्र पैन के साथ काम नहीं करता है

ValueError: आधार के साथ int () के लिए अवैध शब्दशः: ''

मैं एक प्रोग्राम तैयार कर रहा हूँ जो एक फ़ाइल पढ़ता है और यदि फ़ाइल की पहली पंक्ति रिक्त नहीं है, तो यह अगले चार लाइनों को पढ़ता है गणना उन पंक्तियों पर की जाती है और फिर अगली पंक्ति पढ़ी जाती है। अगर वह रेखा खाली नहीं है तो यह जारी रहेगा हालांकि, मुझे यह त्रुटि मिल रही है:

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

यह पहली पंक्ति पढ़ रहा है लेकिन इसे पूर्णांक में परिवर्तित नहीं किया जा सकता है

इस समस्या को सुलझाने में मैं क्या कर सकता हूं?

कोड:

 file_to_read = raw_input("Enter file name of tests (empty string to end program):") try: infile = open(file_to_read, 'r') while file_to_read != " ": file_to_write = raw_input("Enter output file name (.csv will be appended to it):") file_to_write = file_to_write + ".csv" outfile = open(file_to_write, "w") readings = (infile.readline()) print readings while readings != 0: global count readings = int(readings) minimum = (infile.readline()) maximum = (infile.readline()) 

Solutions Collecting From Web of "ValueError: आधार के साथ int () के लिए अवैध शब्दशः: ''"

सिर्फ रिकार्ड के लिए:

 >>> int('55063.000000') Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: '55063.000000' 

मुझे यहाँ मिल गया …

 >>> float('55063.000000') 55063.0 

इस्तेमाल किया जा सकता है!

फ़ाइल पर पुनरावृत्त करने के लिए पायथनिक तरीका और इंट में कनवर्ट करना:

 for line in open(fname): if line.strip(): # line contains eol character(s) n = int(line) # assuming single integer on each line 

आप जो करने की कोशिश कर रहे हैं वह थोड़ा अधिक जटिल है, लेकिन अभी तक सीधे-आगे नहीं:

 h = open(fname) for line in h: if line.strip(): [int(next(h).strip()) for _ in range(4)] # list of integers 

इस समय यह उस समय 5 लाइनों की प्रक्रिया करता है पायथन 2.6 से पहले next(h) h.next() बजाय h.next() उपयोग करें।

कारण आपको ValueError था क्योंकि int पूर्णांक में रिक्त स्ट्रिंग परिवर्तित नहीं कर सकता। इस मामले में आपको रूपांतरण से पहले या स्ट्रिंग की सामग्री की जांच करने की आवश्यकता होगी, या एक त्रुटि को छोड़कर:

 try: int('') except ValueError: pass # or whatever 

इसका कारण यह है कि आप एक खाली स्ट्रिंग या स्ट्रिंग को एक आर्गुमेंट के रूप में जांच कर रहे हैं, इससे पहले कि यह रिक्त है या इसमें अल्फा वर्ण हैं या नहीं, अगर उस भाग को आसानी से अनदेखा करना है

आपको इस रेखा के साथ एक समस्या है:

 while file_to_read != " ": 

यह खाली स्ट्रिंग नहीं खोजता है यह एक स्थान की एक स्ट्रिंग पाता है संभवत: यह आपके लिए नहीं है।

हर किसी की सलाह को सुनो यह बहुत मुहावरेदार अजगर कोड नहीं है, और यदि आप सीधे फ़ाइल पर पुनरावृति करते हैं तो यह बहुत स्पष्ट होगा, लेकिन मुझे लगता है कि यह समस्या भी ध्यान देने योग्य है।

कृपया एक साधारण फ़ाइल पर इस फ़ंक्शन ( split() ) की जांच करें। मुझे एक ही समस्या का सामना करना पड़ रहा था और पाया कि यह इसलिए था क्योंकि split() ठीक से लिखा नहीं गया था (अपवाद हैंडलिंग)।

  readings = (infile.readline()) print readings while readings != 0: global count readings = int(readings) 

उस कोड के साथ एक समस्या है readings फ़ाइल से एक नई लाइन पढ़ी गई है – यह एक स्ट्रिंग है इसलिए आपको इसकी तुलना 0 से नहीं करनी चाहिए। इसके अलावा, आप इसे केवल एक पूर्णांक में परिवर्तित नहीं कर सकते हैं, जब तक आप यह नहीं जानते कि यह वाकई एक है। उदाहरण के लिए, रिक्त पंक्तियां यहां त्रुटियों का उत्पादन करती हैं (जैसा आपने निश्चित रूप से पाया है)।

और आपको वैश्विक गिनती की आवश्यकता क्यों है? यह निश्चित रूप से पायथन में खराब डिज़ाइन है

मुझे ऐसी त्रुटियां मिल रही थीं, पता चला है कि डेटासेट में रिक्त मान थे, जो अजगर पूर्णांक में परिवर्तित नहीं कर सके।

मैं एक प्रोग्राम तैयार कर रहा हूँ जो एक फ़ाइल पढ़ता है और यदि फ़ाइल की पहली पंक्ति रिक्त नहीं है, तो यह अगले चार लाइनों को पढ़ता है गणना उन पंक्तियों पर की जाती है और फिर अगली पंक्ति पढ़ी जाती है।

ऐसा कुछ काम करना चाहिए:

 for line in infile: next_lines = [] if line.strip(): for i in xrange(4): try: next_lines.append(infile.next()) except StopIteration: break # Do your calculation with "4 lines" here 

ऐसा तब भी हो सकता है जब आपको अलग-अलग पूर्णांक सूची को एक सूची में मैप करना पड़ता है, लेकिन आप .input() का उपयोग करके लाइन से पूर्णांक रेखा दर्ज करते हैं। उदाहरण के लिए, मैं हैकररंक बोन एपेटिट पर इस समस्या को हल कर रहा था, और संकलन करते समय निम्नलिखित त्रुटि मिली यहां छवि विवरण दर्ज करें

इसलिए लाइन द्वारा प्रोग्राम लाइन में इनपुट देने की बजाय map() विधि का उपयोग करके स्थान से अलग किए गए पूर्णांक को एक सूची में map() का प्रयास map()