2012-04-02 20 views
7

में प्रिंट के बाद मैं दो चर के बीच स्थान कैसे जोड़ूं मैं पाइथन के लिए काफी नया हूं, इसलिए मैं कुछ सरल कोड पर अपना हाथ आजमा रहा हूं। हालांकि, प्रथाओं में से एक में मेरा कोड बाईं ओर इंच में कुछ संख्याओं को प्रदर्शित करना और दाईं ओर संख्याओं का रूपांतरण करना है;पायथन

count = 1 
conv = count * 2.54 
print count, conv 

मैं चाहता हूं कि उत्पादन उनके बीच कुछ जगह के साथ मुद्रित हो;

count = 1 
conv = count * 2.54 
print count,  conv 

मैं यह नहीं समझ सकता कि यह कैसे करें। मैंने हर जगह खोज की है, लेकिन मुझे लगता है कि लोग अंतरिक्ष से छुटकारा पाने की कोशिश कर रहे हैं। अगर कोई मुझे सही दिशा में ले जा सकता है, तो मैं आभारी रहूंगा।

ओह, और मुझे अभी एहसास हुआ कि मैं पाइथन 2.7 का उपयोग कर रहा हूं, 3.x नहीं। सुनिश्चित नहीं है कि यह महत्वपूर्ण है या नहीं।

उत्तर

7

एक आसान तरीका होगा:

print str(count) + ' ' + str(conv) 

एक सजावटी तरह से, स्ट्रिंग प्रारूपण के लिए नई सिंटैक्स का उपयोग:

print str(count) + ' ' + str(conv) 

आप अधिक स्थान की जरूरत है, बस उन्हें स्ट्रिंग के लिए जोड़

print '{0} {1}'.format(count, conv) 

या पुराने वाक्यविन्यास का उपयोग करके, दशमलव की संख्या को दो तक सीमित करना:

print '%d %.2f' % (count, conv) 
+0

उन कार्यों में से कोई भी नहीं। पहला तरीका मुझे ट्रेसबैक त्रुटि देता है, और दूसरा कार्य करता है जैसे कि यह 'प्रिंट गिनती, रूपांतरण' – Hebon

+0

उनमें से सभी के लिए पहला फिक्स्ड है: आप जितनी रिक्त स्थान के बीच में आवश्यकता हो उतनी रिक्त स्थान जोड़ सकते हैं! –

+0

पहला काम नहीं करेगा क्योंकि आप एक स्ट्रिंग में एक पूर्णांक नहीं जोड़ सकते हैं, न ही एक स्ट्रिंग के लिए एक स्ट्रिंग। दूसरे और तीसरे उदाहरणों में और अधिक जगह पाने के लिए, बस {0} और {1} या% d और% f के बीच आवश्यक रिक्त स्थान डालें। – Whatang

4

इसके बजाय string interpolation का उपयोग करें।

print '%d %f' % (count,conv) 
+0

यह लगभग काम करता है, लेकिन अब मेरे पास मेरे "रूपांतरण" चर के अंत में अतिरिक्त शून्य हैं 'इंच \t \t सेंटीमीटर 1 2.540000' – Hebon

+1

तो फिर'% f' निर्दिष्टकर्ता को ट्यून करें। –

1

यह एक बेवकूफ/hacky रास्ता

print count,  
print conv 
2

वैकल्पिक रूप से आप ljust/rjust उपयोग कर सकते हैं स्वरूपण अच्छे बनाना है।

print "%s%s" % (str(count).rjust(10), conv) 

या

print str(count).ljust(10), conv 
+0

मुझे वास्तव में 'printf' रिश्तेदारों से अधिक इस समाधान को पसंद है। 'Printf' प्रारूप विनिर्देशक से समझना आसान है और यह टिन पर जो भी कहता है वह ठीक करता है। –

2

एक त्वरित चेतावनी, यह एक बहुत अधिक शब्दों वाले जवाब।

प्रिंट कभी-कभी मुश्किल होता है, जब मैंने पहली बार शुरू किया तो मुझे इसके साथ कुछ समस्याएं थीं। आप उन्हें मुद्रित करने के बाद दो चर के बीच कुछ रिक्त स्थान चाहते हैं? उपरोक्त उत्तरों में दिखाए गए अनुसार ऐसा करने के कई तरीके हैं। ,

1 2.54 

आप के बीच में रिक्त स्थान चाहते हैं तो आप के बीच में रिक्त स्थान की एक स्ट्रिंग चिपके द्वारा यह अनुभवहीन तरह से कर सकते हैं:

count = 1 
conv = count * 2.54 
print count, conv 

यह उत्पादन है यह है:

यह आपके कोड है उन्हें। वैरिएबल गिनती और रूपांतरण को स्ट्रिंग प्रकारों में परिवर्तित करने की आवश्यकता होती है ताकि उन्हें एक साथ जोड़ दिया जा सके। यह str() के साथ किया जाता है।

print (str(count) + "   " + str(conv)) 
### Provides an output of: 
1   2.54 

ऐसा करने के लिए नए, अधिक pythonic तरीका है, हम मूल्य की तरह हम प्रयोग कर रहे निरूपित करने के लिए एक पत्र के साथ संयोजन के रूप में% चिह्न का उपयोग करें। यहां मैं रिक्त स्थान के बजाय अंडरस्कोर का उपयोग यह दिखाने के लिए करता हूं कि कितने हैं। अंतिम मूल्यों से पहले मॉड्यूलो हमारे द्वारा प्रदान किए गए क्रम में निम्नलिखित मानों को सम्मिलित करने के लिए पाइथन को बताता है।

print ('%i____%s' % (count, conv)) 
### provides an output of: 
1____2.54 

मैं गिनती के लिए% मैं इस्तेमाल किया है क्योंकि यह बजाय "2.54" तकनीकी तौर पर, मैं कर सकता की एक पूरी संख्या है, और रूपा के लिए% s, कि उदाहरण में% i का उपयोग कर, क्योंकि हमें "2" के साथ प्रदान करेगा ' मैंने% s दोनों का उपयोग किया है, लेकिन यह सब अच्छा है।

मुझे आशा है कि इस मदद करता है!

-जोसेफ

पीएस यदि आप अपने स्वरूपण के साथ जटिल होना चाहते हैं, तो आपको बड़ी मात्रा में टेक्स्ट जैसे शब्दकोश और टुपल सूचियों (पप्रिंट के रूप में आयातित) के साथ-साथ के लिए सुंदर प्रिंट देखना चाहिए जो स्वचालित टैब, रिक्ति और अन्य शांत जंक करता है।

यहां पाइथन दस्तावेज़ों में तारों के बारे में कुछ और जानकारी दी गई है। http://docs.python.org/library/string.html#module-string

+1

यह बहुत जानकारीपूर्ण है। इसे समझाने के लिए समय निकालने के लिए धन्यवाद। – Hebon

+0

धन्यवाद, मुझे खुशी है कि मैं सहायक हो सकता हूं! –

0

print str(count) + ' ' + str(conv) - यह काम नहीं किया। हालांकि, मेरे लिए , काम करता है के साथ + जगह

0

आप अजगर स्पष्ट रूपांतरण करें पीईपी-3101 का उपयोग करना चाहिए

'My name is {0!s:10} {1}'.format('Dunkin', 'Donuts')

'My name is Dunkin Donuts'

या

'My name is %-10s %s' % ('Dunkin', 'Donuts')

'My name is Dunkin Donuts'

https://www.python.org/dev/peps/pep-3101/