2013-06-14 3 views
69

का उपयोग कर अग्रणी शून्य जोड़ते हैं क्या आप str.format फ़ंक्शन का उपयोग कर अग्रणी शून्यों के साथ एक पूर्णांक मान प्रदर्शित कर सकते हैं?पायथन str.format

उदाहरण इनपुट:

"{0:some_format_specifying_width_3}".format(1) 
"{0:some_format_specifying_width_3}".format(10) 
"{0:some_format_specifying_width_3}".format(100) 

वांछित उत्पादन:

"001" 
"010" 
"100" 

मुझे पता है कि दोनों zfill और % आधारित स्वरूपण (जैसे '%03d' % 5) यह पूरा कर सकते हैं। हालांकि, मुझे एक समाधान चाहिए जो मेरे कोड को साफ और सुसंगत रखने के लिए str.format का उपयोग करता है (मैं डेटाटाइम विशेषताओं के साथ स्ट्रिंग को भी स्वरूपित कर रहा हूं) और Format Specification Mini-Language के अपने ज्ञान का विस्तार करने के लिए भी।

+1

'max_width',' A', 'b', और' c' चर नाम या कर रहे हैं क्या आपका इनपुट एक स्ट्रिंग है? –

+0

वे कुछ उदाहरण चर नाम हैं। उदाहरण के लिए 'max_width' का उपयोग यह इंगित करने के लिए किया गया था कि उदाहरण मानों के लिए कितने अग्रणी शून्य आवश्यक होंगे। मेरे वास्तविक कोड में प्रारूप में इनपुट में डेटाटाइम ऑब्जेक्ट और कुछ इंट्स शामिल हैं जिन्हें मैं अग्रणी शून्य के साथ प्रारूपित करना चाहता हूं। – butch

+0

तो आप एक 'लाइनर' के साथ 1-लाइनर चाहते हैं या एक फ़ंक्शन जो कच्चे पायथन के अलावा कुछ भी नहीं उपयोग करेगा? –

उत्तर

152
>>> "{0:0>3}".format(1) 
'001' 
>>> "{0:0>3}".format(10) 
'010' 
>>> "{0:0>3}".format(100) 
'100' 

स्पष्टीकरण:

{0 : 0 > 3} 
│ │ │ │ 
│ │ │ └─ Width of 3 
│ │ └─ Align Right 
│ └─ Fill with '0' 
└─ Element index 
+0

आह, मुझे लगता है कि मेरे उदाहरणों को थोड़ा सा शाब्दिक रूप से व्याख्या किया गया था। मैं बस एक प्रारूप चाहता हूं जो '" {0: some_format_specifying_width_four} "बनाता है। प्रारूप (10) 'उत्पादन'" 0010 "'। – butch

+1

मैंने अधिक स्पष्टता प्रदान करने के लिए अपने मूल उदाहरण अपडेट किए – butch

+1

मेरा उत्तर संपादित किया। –

19

अजगर डॉक्स में Format examples, Nesting examples से व्युत्पन्न:

>>> '{0:0{width}}'.format(5, width=3) 
'005' 
+0

उत्कृष्ट! मैं @ एफजे के जवाब को स्वीकार कर रहा हूं क्योंकि मैं चौड़ाई के लिए एक और चर निर्दिष्ट नहीं करना पसंद करता हूं, हालांकि यह उत्तर अपने स्पष्टीकरण में बहुत पागल दिखता है! – butch

+0

ऐसा तब होगा जब आप उत्तर देने के बाद प्रश्न संपादित करेंगे। मुझे खुशी है कि हम आपकी मंशा को स्पष्ट करने में आपकी मदद कर सकते हैं। – msw

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