2011-04-11 8 views
9

के ऑब्जेक्ट के लिए अज्ञात प्रारूप कोड 'डी' देता है यदि मैं दस्तावेज़ों को सही ढंग से समझता हूं, तो Python 2.6.5 स्ट्रिंग स्वरूपण "{0: d}""{0: d}" के साथ स्ट्रिंग स्वरूपण। प्रारूप 'फ्लोट'

: String.Format() स्वरूपण तार के माध्यम

" I have {0:d} dollars on me ".format(100.113) 

प्रिंट चाहिए साथ ही "% d" वही करती है "मैं मुझ पर 100 डॉलर है"

हालांकि मैं त्रुटि मिलती है

ValueError: Unknown format code 'd' for object of type 'float'

अन्य प्रारूप संचालन कार्य करते हैं। उदाहरण के लिए।

>>> "{0:e}".format(112121.2111) 
'1.121212e+05' 

उत्तर

12

यह त्रुटि यह संकेत दे रही है कि आप एक पूर्णांक की अपेक्षा स्वरूप प्रारूप कोड में एक फ्लोट पास कर रहे हैं। इसके बजाय {0:f} का उपयोग करें। इस प्रकार:

"I have {0:f} dollars on me".format(100.113) 

दे देंगे:

'I have 100.113000 dollars on me' 
+17

उपयोग 'में के रूप में एक नंबर नहीं हो सकता है" {0: .0f} "। प्रारूप (एन)' आप 0 दशमलव स्थानों चाहते हैं। –

+0

फिक्स के लिए धन्यवाद, लेकिन ऐसा लगता है कि यह एक क्विर्क है। % डी सही काम करेगा और मुझे 100.111 फ्लोट के लिए 100 दे देगा, लेकिन: डी नहीं करता है। – harijay

+0

क्षमा करें जस्टिन, मेरा मतलब है कि यह एक पाइथन केंद्रित क्विर्क – harijay

3

हाँ, आप सही ढंग से समझ। हालांकि आप float (यानी 100.113) पास कर रहे हैं, int नहीं। या तो इसे int में परिवर्तित करें: int(100.113) या बस 100 पास करें।

+0

यह '" {: .0f} "से बेहतर काम करता है, क्योंकि' int() ''राउंड' जैसे'% d' और '.0f' नहीं है। जैसे। 'जोर दें "{: .0f}" प्रारूप (1.6) == "% d"% 1.6' उठाएगा, '" {: d} "प्रारूप (int (1.6)) =="% d "% 1.6' नहीं होगा। लेकिन अगर आपको पहले से प्रारूप प्रारूप को पास करने की आवश्यकता है। एक फॉर्मेटर के लिए और इसके स्रोत पर कोई नियंत्रण नहीं है, आप 'int() 'नहीं कर सकते हैं। (वैसे वे या तो '%' या '.format' करेंगे) – n611x007

-1

हटाएँ 'ड', के बाद से ऑब्जेक्ट प्रकार मेरे मामले

+0

हालांकि हांग डिंग एक प्रकार का गलत है, इस पर विचार करते हुए कि एसओ पर यह एकमात्र सवाल है जो त्रुटि संदेश 'अज्ञात प्रारूप कोड' डी 'से संबंधित है 'XXX' प्रकार का ऑब्जेक्ट, यह उल्लेखनीय है कि यदि आप '{d}' के बजाय '{}' का उपयोग करेंगे, तो आपको यह अनुमान लगाने की आवश्यकता नहीं होगी कि क्या गलत है और दृश्यों के पीछे क्या हो रहा है यह देखने में सक्षम होगा । (मुझे लगता है कि यही कारण है कि उसने "गलत" उत्तर दिया: क्योंकि त्रुटि संदेश एक जैसा है।) – 8day

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