पायथन में कई तर्क मुद्रित करें


309

यह मेरे कोड का एक स्निपेट है:

print("Total score for %s is %s  ", name, score)

लेकिन मैं चाहता हूं कि इसका प्रिंट आउट लिया जाए:

"(नाम) के लिए कुल स्कोर (स्कोर) है"

जहां nameएक सूची में एक चर है और scoreएक पूर्णांक है। यह पायथन 3.3 है जो अगर बिल्कुल मदद करता है।

जवाबों:


559

इसे करने के कई तरीके हैं। %-वर्तमान का उपयोग करके अपने वर्तमान कोड को ठीक करने के लिए , आपको एक टपल में पास होना होगा:

  1. टपल के रूप में इसे पास करें:

    print("Total score for %s is %s" % (name, score))

एक एकल तत्व के साथ एक टुपल जैसा दिखता है ('this',)

यहाँ यह करने के कुछ अन्य सामान्य तरीके दिए गए हैं:

  1. इसे एक शब्दकोश के रूप में पास करें:

    print("Total score for %(n)s is %(s)s" % {'n': name, 's': score})

नई शैली की स्ट्रिंग प्रारूपण भी है, जिसे पढ़ना थोड़ा आसान हो सकता है:

  1. नई-शैली स्ट्रिंग स्वरूपण का उपयोग करें:

    print("Total score for {} is {}".format(name, score))
  2. संख्याओं के साथ नई-शैली की स्ट्रिंग फ़ॉर्मेटिंग का उपयोग करें (एक ही समय में एक ही बार पुन: मुद्रित या मुद्रित करने के लिए उपयोगी):

    print("Total score for {0} is {1}".format(name, score))
  3. स्पष्ट नामों के साथ नई शैली की स्ट्रिंग प्रारूपण का उपयोग करें:

    print("Total score for {n} is {s}".format(n=name, s=score))
  4. संघातिक तार:

    print("Total score for " + str(name) + " is " + str(score))

स्पष्ट दो, मेरी राय में:

  1. मानों को मापदंडों के रूप में पास करें:

    print("Total score for", name, "is", score)

    यदि आप नहीं चाहते कि रिक्त स्थान printउपरोक्त उदाहरण से स्वचालित रूप से डाले जाएं , तो sepपैरामीटर बदलें :

    print("Total score for ", name, " is ", score, sep='')

    यदि आप पायथन 2 का उपयोग कर रहे हैं, तो अंतिम दो का उपयोग नहीं कर पाएंगे क्योंकि printपायथन 2 में कोई फ़ंक्शन नहीं है। आप इस व्यवहार को __future__निम्न से आयात कर सकते हैं :

    from __future__ import print_function
  2. fपायथन 3.6 में नए- स्ट्रिंग स्वरूपण का उपयोग करें :

    print(f'Total score for {name} is {score}')

7
बेशक, वहाँ हमेशा सदियों पुरानी अस्वीकृत विधि है:print("Total score for "+str(name)"+ is "+str(score))
सांप और कॉफी

5
@ सेंकंडकॉफ़ी: मैं अभी करूँगाprint("Total score for", name, "is", score)
ब्लेंडर

4
मेरा +1। इन दिनों मैं .format()पुराने की तुलना में अधिक पठनीय पसंद करता हूं % (tuple)- हालांकि मैंने ऐसे परीक्षण देखे हैं जो दिखाते हैं कि %प्रक्षेप अधिक तेज है। print('xxx', a, 'yyy', b)भी साधारण मामलों के लिए ठीक है। मैं .format_map()डिक्शनरी के रूप में डिक्शनरी के साथ सीखने की भी सलाह देता हूं , और 'ssss {key1} xxx {key2}'टेम्प्लेट से टेक्स्ट बनाने के लिए अच्छा है। वृद्ध भी है string_template % dictionary। लेकिन टेम्प्लेट उस साफ नहीं दिखते हैं 'ssss %(key1)s xxx %(key2)s':।
पेप 15

6
FYI करें, पाइथन 3.6 के रूप में, हम एफ-स्ट्रिंग्स प्राप्त करते हैं , इसलिए अब आप print(f"Total score for {name} is {score}")बिना किसी स्पष्ट फ़ंक्शन कॉल (जब तक nameऔर scoreस्पष्ट रूप से स्कोप में हैं) के साथ भी कर सकते हैं ।
शैडो रेंजर

57

इसे प्रिंट करने के कई तरीके हैं।

आइए एक और उदाहरण के साथ देखें।

a = 10
b = 20
c = a + b

#Normal string concatenation
print("sum of", a , "and" , b , "is" , c) 

#convert variable into str
print("sum of " + str(a) + " and " + str(b) + " is " + str(c)) 

# if you want to print in tuple way
print("Sum of %s and %s is %s: " %(a,b,c))  

#New style string formatting
print("sum of {} and {} is {}".format(a,b,c)) 

#in case you want to use repr()
print("sum of " + repr(a) + " and " + repr(b) + " is " + repr(c))

EDIT :

#New f-string formatting from Python 3.6:
print(f'Sum of {a} and {b} is {c}')

3
print("sum of {0} and {1} is {2}".format(a,b,c)) ओवरकिल है, आप print("sum of {} and {} is {}".format(a,b,c)) तब तक छोड़ सकते हैं जब तक आप ऑर्डर बदलना नहीं चाहते।
जीन फ़्राँस्वा Fabre

38

उपयोग करें .format():

print("Total score for {0} is {1}".format(name, score))

या:

// Recommended, more readable code

print("Total score for {n} is {s}".format(n=name, s=score))

या:

print("Total score for" + name + " is " + score)

या:

`print("Total score for %s is %d" % (name, score))`

21

पायथन 3.6 में, f-stringबहुत क्लीनर है।

पिछले संस्करण में:

print("Total score for %s is %s. " % (name, score))

पायथन 3.6 में:

print(f'Total score for {name} is {score}.')

करूँगा।

यह अधिक कुशल और सुरुचिपूर्ण है।


15

इसे सरल रखते हुए, मुझे व्यक्तिगत रूप से स्ट्रिंग संयोजन पसंद है:

print("Total score for " + name + " is " + score)

यह पायथन 2.7 ए 3. एक्स दोनों के साथ काम करता है।

नोट: यदि स्कोर एक इंट है , तो, आपको इसे str में बदलना चाहिए :

print("Total score for " + name + " is " + str(score))


11

बस इस का पालन करें

idiot_type = "the biggest idiot"
year = 22
print("I have been {} for {} years ".format(idiot_type, years))

या

idiot_type = "the biggest idiot"
year = 22
print("I have been %s for %s years."% (idiot_type, year))

और अन्य सभी को भूल जाओ, अन्यथा मस्तिष्क सभी स्वरूपों को मैप करने में सक्षम नहीं होगा।


6
print("Total score for %s is %s  " % (name, score))

%sद्वारा प्रतिस्थापित किया जा सकता है %dया%f


6

उपयोग करें f-string:

print(f'Total score for {name} is {score}')

या

उपयोग करें .format:

print("Total score for {} is {}".format(name, score))

5

अगर scoreएक नंबर है, तो

print("Total score for %s is %d" % (name, score))

यदि स्कोर एक स्ट्रिंग है, तो

print("Total score for %s is %s" % (name, score))

यदि स्कोर एक संख्या है, तो यह है %d, अगर यह एक स्ट्रिंग है, तो यह है %s, अगर स्कोर एक फ्लोट है, तो यह है%f


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.