2012-09-28 11 views
10

मैं कुछ रिपोर्ट लिख रहा हूं, और मैं जानना चाहता हूं कि निम्नलिखित व्यवहार प्राप्त करने का एक आसान तरीका है या नहीं।नेस्टिंग स्ट्रिंग प्रारूप

>>> '{:-^60}'.format('Percentage used: {:.2%}'.format(.4)) 
'------------------Percentage used: 40.00%-------------------' 

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

'$SOMETHING GOES HERE'.format(header = 'Percentage Used:',percentage = .4) 
पाठ्यक्रम मैं एक सामान्य समाधान के लिए देख रहा हूँ के

, वह सब के साथ या सबसे, formating विकल्पों में से ही नहीं, संरेखण

धन्यवाद करने के लिए काम करते हैं, करेंगे।

+2

हो सकता है ऐसा लगता है आपकी समस्या की तरह स्वाभाविक नीडिंत है। कल्पना कीजिए कि आप दो संख्याओं की एक जोड़ी को प्रारूपित करना चाहते हैं, प्रत्येक को कम से कम 3 वर्ण दें, और पूरी जोड़ी कम से कम 10 ले जाएं। मैं नहीं देख सकता कि आप इसे '' {: 10} ' .format ('({: 3}, {: 3})' प्रारूप (1,2)) '। यह वही बात है। यह पूरी स्ट्रिंग है जिसे आपको केंद्र की आवश्यकता है, कोई विशेष तत्व नहीं, इसलिए आपको स्वरूपित स्ट्रिंग को प्रारूपित करना होगा। @ विम सही है कि 'केंद्र' शायद अधिक पठनीय है, लेकिन यह प्रभावी रूप से बराबर है। – abarnert

+0

धन्यवाद, ज्यादातर मैं कुछ विचारों की तलाश में हूं। मैं नहीं देखता कि आप इसे कैसे कर सकते हैं, लेकिन शायद अन्य कार्य या कुछ ट्रिक कर सकता है। @ विम से एक की तरह। हालांकि मुझे लगता है कि मैं जो करना चाहता हूं वह स्वरूप फ़ंक्शन द्वारा ही सीमित है। – Darkade

+0

यदि आप अंतर्निहित 'प्रारूप' की तुलना में कुछ अधिक शक्तिशाली और लचीले (लेकिन जटिल) की तलाश में हैं, तो 'प्रारूप' के समय के आसपास कुछ वर्षों के लिए, लोगों ने सभी प्रकार के विकल्पों का सुझाव दिया, और पुस्तकालयों को कोडित किया जो उनमें से अधिकांश को लागू किया। पीईपीआई खोजना, और शायद एक्टिवस्टेट रेसिपी संग्रह (क्योंकि यह तब हो रहा था जब पीईपीआई अभी भी विकास में था) और हो सकता है कि आपको कुछ ऐसा मिले जो आपको चाहिए। (मेरे पास कोई विशिष्ट सिफारिश नहीं है।) – abarnert

उत्तर

8

एक अधिक पठनीय विकल्प str.center

>>> 'Percentage used: {:.2%}'.format(.4).center(60, '-') 
'------------------Percentage used: 40.00%-------------------' 
+2

धन्यवाद, जो समस्या को हल करता है। हालांकि यह काफी सामान्य नहीं है। लेकिन जैसा कि @ बार्नर्ट ने टिप्पणी की, मैं जो करना चाहता हूं वह शायद स्वाभाविक रूप से घोंसला है – Darkade

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