2010-07-05 12 views
6

मैं निम्नलिखित कोड है:प्रिंट उत्पादन

>>> x = 0 
>>> y = 3 
>>> while x < y: 
    ... print '{0}/{1}, '.format(x+1, y) 
    ... x += 1 

आउटपुट:

1/3, 
2/3, 
3/3, 

मैं चाहता हूँ मेरी उत्पादन की तरह:

1/3, 2/3, 3/3 

मैं खोज की है और पाया गया कि एक लाइन में ऐसा करने का तरीका होगा:

sys.stdout.write('{0}/{1}, '.format(x+1, y)) 

क्या ऐसा करने का कोई और तरीका है? मुझे sys.stdout.write() के साथ बिल्कुल सहज महसूस नहीं होता है क्योंकि मुझे नहीं पता कि यह print से अलग कैसे है।

उत्तर

6

आप उपयोग कर सकते

प्रिंट "कुछ",

(एक अनुगामी अल्पविराम के साथ, एक नई पंक्ति सम्मिलित नहीं करने के लिए), इसलिए इस

... print '{0}/{1}, '.format(x+1, y), #<= with a , 
+0

वाह के साथ आगे संगत होने के लिए अलग कोड होना चाहिए। धन्यवाद। मैं अंदर कॉमा डाल रहा था। – user225312

2

कोई ज़रूरत नहीं की कोशिश write के लिए।

यदि आप प्रिंट स्टेटमेंट के बाद पिछली कॉमा डालते हैं, तो आपको वह चाहिए जो आपको चाहिए।

चेतावनियां:

  • आप अंत में एक खाली प्रिंट बयान को जोड़ने के लिए है, तो आप अगले पाठ एक नई लाइन पर जारी रखना चाहते हैं की आवश्यकता होगी।
  • पायथन 3.x
  • में अलग हो सकता है हमेशा सेपरेटर के रूप में कम से कम एक स्थान जोड़ा जाएगा। इस मामले में, यह ठीक है, क्योंकि आप वैसे भी एक जगह अलग करना चाहते हैं।
2
>>> while x < y: 
...  print '{0}/{1}, '.format(x+1, y), 
...  x += 1 
... 
1/3, 2/3, 3/3, 

सूचना अतिरिक्त अल्पविराम।

3

मुझे लगता है कि sys.stdout.write() ठीक हो जाएगा, लेकिन अजगर 2 में मानक तरीका पीछे अल्पविराम के साथ print है, के रूप में mb14 का सुझाव दिया।

from __future__ import print_function 
print("Hello World", end="") 
2

आप प्रिंट के अंत में , उपयोग कर सकते हैं: आप अजगर 2.6+ का उपयोग करने और अजगर 3 को ऊपर की ओर-संगत होना चाहते हैं, तो आपको नई printसमारोह जो एक और अधिक पठनीय वाक्यविन्यास प्रदान करता है का उपयोग कर सकते बयान।


while x<y: 
    print '{0}/{1}, '.format(x+1, y) , 
    x += 1 
आप this पढ़ सकते हैं।

-1

यहां इटारटोल का उपयोग करने के लिए आप जो चाहते हैं उसे हासिल करने का एक तरीका है।यह भी python3 जहां प्रिंट एक समारोह

from itertools import count, takewhile 
y=3 
print(", ".join("{0}/{1}".format(x,y) for x in takewhile(lambda x: x<=y,count(1)))) 

आप पा सकते हैं निम्नलिखित दृष्टिकोण पीछे अल्पविराम के साथ print उपयोग करने के साथ

y=3 
items_to_print = [] 
for x in range(y): 
    items_to_print.append("{0}/{1}".format(x+1, y)) 
print(", ".join(items_to_print)) 

समस्याओं का पालन करने के लिए कि आप एक प्राप्त कर रहे हैं आसान है हो जाता है के लिए ठीक से काम करेंगे अंत में अतिरिक्त कॉमा, और कोई नई लाइन नहीं। इसका मतलब यह भी है कि आपके पास python3

+0

मुझे 'itertools' के साथ कोई अनुभव नहीं है लेकिन मुझे पढ़ने का इरादा है। इसके लिए धन्यवाद। – user225312

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