2012-05-31 11 views
35

मैं फ़ील्ड के बीच निश्चित स्थिति के साथ निश्चित आकार के साथ एक स्वरूपित स्ट्रिंग बनाना चाहता हूं। एक उदाहरण बेहतर बताते हैं, यहाँ वहाँ स्पष्ट रूप से 3 अलग क्षेत्रों रहे हैं और स्ट्रिंग एक निश्चित आकार है:मैं अजगर में एक निश्चित आकार स्वरूपित स्ट्रिंग कैसे बना सकता हूं?

XXX  123 98.00 
YYYYY  3 1.00 
ZZ   42 123.34 

मैं कैसे अजगर (2.7) में एक स्ट्रिंग के लिए इस तरह स्वरूपण लागू कर सकते हैं?

उत्तर

80

निश्चित रूप से, .format विधि का उपयोग करें। जैसे,

print '{:10s} {:3d}  {:7.2f}'.format('xxx', 123, 98) 
print '{:10s} {:3d}  {:7.2f}'.format('yyyy', 3, 1.0) 
print '{:10s} {:3d}  {:7.2f}'.format('zz', 42, 123.34) 

प्रिंट

xxx  123 98.00 
yyyy   3  1.00 
zz   42 123.34 

आप के रूप में वांछित क्षेत्र आकार समायोजित कर सकते हैं होगा। ध्यान दें कि .format स्ट्रिंग को प्रारूपित करने के लिए print से स्वतंत्र रूप से काम करता है। मैंने तारों को प्रदर्शित करने के लिए प्रिंट का उपयोग किया। संक्षिप्त विवरण:

10s प्रारूप 10 रिक्त स्थान, छोड़ दिया साथ एक स्ट्रिंग डिफ़ॉल्ट

3d प्रारूप एक पूर्णांक 3 रिक्त स्थान आरक्षित करके जायज है, है ना, डिफ़ॉल्ट

7.2f प्रारूप एक नाव से उचित 7 रिक्त स्थान आरक्षित, दशमलव बिंदु के बाद 2, डिफ़ॉल्ट रूप से सही है।

स्ट्रिंग्स (पैडिंग, बाएं/दाएं औचित्य इत्यादि) के लिए कई अतिरिक्त विकल्प हैं, String Formatting Operations अधिक जानकारी प्रदान करेंगे।

+2

बिल्कुल वही जो मैं खोज रहा था, धन्यवाद! – anio

+4

नोट: '7.2f' 2 की सटीकता को लागू करता है, लेकिन 7 केवल _minimum_ चौड़ाई है। उन इनपुट्स के लिए जो प्रारूपों के साथ ज़िव नहीं करते हैं, आपको 7 की चौड़ाई नहीं मिल सकती है। उदा। भले ही 12345.7 केवल 7 वर्ण हैं, '' {: 7.2f} 'प्रारूप (12345.7)' की चौड़ाई 8 है। – jkmacc

+0

@jkmacc अच्छा बिंदु, स्पष्ट रूप से यह कहने के लिए धन्यवाद (लिंक इस पर अधिक जानकारी प्रदान करता है, और अधिक , साथ ही शीर्ष # 4 पर भी सही है, लेकिन यह अधिक स्पष्ट/आसान है :) – Levon

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