2012-04-07 11 views
55

Possible Duplicate:
“ValueError: zero length field name in format” error in Python 3.0,3.1,3.2ValueError: प्रारूप अजगर में शून्य लंबाई फ़ील्ड नाम

मैं इस समस्या को हल करने की कोशिश कर घंटे बिताए लेकिन कोई लाभ नहीं हुआ है। मैंने this guide पढ़ा। मुझे कोई उदाहरण नहीं मिला है कि मुझे क्या करना है।

जब मैं स्क्रिप्ट मैं इस त्रुटि मिलती है चलाने के (आंशिक रूप से हटा दिया गया):

Traceback (...): 
    [...] 
    output.write("{: > 026,.18e} {: > 026,.18e}\n".format(x,y)) 
ValueError: zero length field name in format. 

कोड अजगर 2.6 या 2.7 में लिखा है लेकिन मैं अजगर 3.1 चलाते हैं। आउटपुट प्रारूप को बदलने की मुझे कैसे आवश्यकता होगी ताकि यह काम करे?

def f(x,y,a = 0.01): 
    return y/(a+x)-y**3 

def ekspEuler(N,dat): 
    output = open(dat,"w") 
    h = 3.0/N 
    x,y = 0,1 #zac.pogoj 

    for i in range(1,N+2): 
     output.write("{: > 026,.18e} {: > 026,.18e}\n".format(x,y)) 
     y += h*f(x,y) 
     x = i*h 
    output.close() 

आपकी सहायता के लिए धन्यवाद।

+0

ठीक है, आप * क्या करना चाहते हैं? या अलग से पूछा, आप क्यों नहीं चाहते हैं '' {} {} "। प्रारूप (एक्स, वाई)'? – phihag

+0

मुझे अभी भी वही त्रुटि मिलती है। – malganis

+0

क्या समस्या है कि एक ब्रैकेट में दो विनिर्देशक हैं? मैंने छोड़ा .18e और फिर मुझे ओवरफ्लो त्रुटि मिलती है: (34, 'संख्यात्मक परिणाम हमारी सीमा') – malganis

उत्तर

134

संभावना है कि आप पुराने पायथन संस्करण चला रहे हैं, न कि 3.1। अजगर 2.6 में, आप प्रारूप चश्मा में सूचकांक की जरूरत है, इस तरह: हाल ही में एक एक, अधिमानतः 2.7 या 3.2

"{0} {1}\n".format(x,y) 

अद्यतन अपने अजगर संस्करण, इस समस्या को ठीक करने के लिए। दस्तावेज़ीकरण के मुताबिक, संख्यात्मक सूचकांक should work in Python 3.1:

Changed in version 3.1: The positional argument specifiers can be omitted, so '{} {}' is equivalent to '{0} {1}'.

+0

मैं अजगर 3.1.3 चला रहा हूं और मैं गीनी का उपयोग कर रहा हूं। मुझे नहीं पता कि 3.2 संस्करण कैसे स्थापित करें। मैं लिनक्स के लिए नया हूँ। – malganis

+0

क्षमा करें, मुझे नहीं पता कि * गेनी * क्या है। क्या आपका मतलब संपादक [गेनी] (http://www.geany.org/) है? किसी भी मामले में, आप अपने पायथन संस्करण को 'आयात sys; प्रिंट (sys.version)' के साथ पा सकते हैं। कई लिनक्स वितरण हैं, आप किसका उपयोग कर रहे हैं? – phihag

+0

यह गेनी है। मैं उबंटू 10.04 का उपयोग कर रहा हूं। तुम सही थे। मैं 2.6.5 का उपयोग कर रहा हूँ। मैंने इसके साथ प्रयास किया: output.write ("{0:> 026, .18e} {1:> 026, .18e} \ n" .format (x, y)) और मुझे ValueError मिलता है: अमान्य रूपांतरण विनिर्देश – malganis

संबंधित मुद्दे