2011-11-30 15 views
10

संभव डुप्लिकेट:
How can I print a literal “{}” characters in python string and also use .format on it?मैं कैसे .format() का उपयोग कर एक स्ट्रिंग मुद्रित कर सकते हैं, और मेरे प्रतिस्थापित स्ट्रिंग के आसपास शाब्दिक कर्ली कोष्ठक प्रिंट

असल में, मैं .format उपयोग करना चाहते हैं(), इस तरह:

my_string = '{{0}:{1}}'.format('hello', 'bonjour') 

और यह मेल खाते हैं:

my_string = '{hello:bonjour}' #this is a string with literal curly brackets 

हालांकि, कोड का पहला भाग मुझे एक त्रुटि देता है।

घुंघराले ब्रैकेट महत्वपूर्ण हैं, क्योंकि मैं पाठ-आधारित आदेशों के माध्यम से सॉफ़्टवेयर के एक टुकड़े के साथ संवाद करने के लिए पायथन का उपयोग कर रहा हूं। मेरे पास कोई नियंत्रण नहीं है कि किस प्रकार के प्रारूप को फोसॉफ्टिंग की उम्मीद है, इसलिए यह महत्वपूर्ण है कि मैं अपने अंत में सभी स्वरूपण को हल करता हूं। यह तारों के चारों ओर घुंघराले ब्रैकेट का उपयोग यह सुनिश्चित करने के लिए करता है कि स्ट्रिंग्स में रिक्त स्थान को एकाधिक तर्कों के बजाए एकल तारों के रूप में व्याख्या किया जाता है - उदाहरण के लिए, आमतौर पर आप फ़ाइल पथों में उद्धरण चिह्नों के साथ करते हैं।

मैं वर्तमान में पुराने विधि का उपयोग कर रहा हूँ:

my_string = '{%s:%s}' % ('hello', 'bonjour') 

जो निश्चित रूप से काम करता है, लेकिन .format() आसान लगता है पढ़ने के लिए, और जब मैं एक स्ट्रिंग में पांच या उससे अधिक चर के साथ आदेशों भेज रहा सब , तो पठनीयता एक महत्वपूर्ण मुद्दा बन जाता है।

धन्यवाद!

+1

उपयोग "{ {{0}: {1}}} "(डबल {{) http://stackoverflow.com/questions/5466451/how-can-i-print-a-literal-characters-in-python-string-and- उपयोग-प्रारूप-प्रारूप –

+0

हां, उस प्रश्न का डुप्लिकेट। –

उत्तर

20

यहाँ नई शैली है:

>>> '{{{0}:{1}}}'.format('hello', 'bonjour') 
'{hello:bonjour}' 

लेकिन मैं सोच एस्केपिंग कुछ हद तक पढ़ने के लिए मुश्किल है, इसलिए मैं भागने से बचने के लिए पुरानी शैली में वापस स्विच करने के लिए पसंद:

>>> '{%s:%s}' % ('hello', 'bonjour') 
'{hello:bonjour}'