2010-05-04 7 views
31

में सकारात्मक संख्याओं के लिए अंकों के चिह्न + को प्रिंट कैसे करें सकारात्मक संख्याओं पर अंकों के + चिह्न को मुद्रित करने का कोई बेहतर तरीका है?पाइथन

integer1 = 10 
integer2 = 5 
sign = '' 
total = integer1-integer2 
if total > 0: sign = '+' 
print 'Total:'+sign+str(total) 

0 बिना 0 के वापस लौटना चाहिए।

उत्तर

37
>>> print "%+d" % (-1) 
-1 
>>> 
>>> print "%+d" % (1) 
+1 
>>> print "%+d" % (0) 
+0 
>>> 

यहां the documentation है।

** अद्यतन ** जो भी कारण के लिए आप % ऑपरेटर का उपयोग नहीं कर सकते हैं, तो आप एक समारोह की जरूरत नहीं है:

>>> total = -10; print "Total:" + ["", "+"][total > 0] + str(total) 
Total:-10 
>>> total = 0; print "Total:" + ["", "+"][total > 0] + str(total) 
Total:0 
>>> total = 10; print "Total:" + ["", "+"][total > 0] + str(total) 
Total:+10 
>>> 
+0

आपके उत्तर के लिए धन्यवाद। मैं web.py templator के साथ काम कर रहा हूं और मुझे यकीन नहीं है कि मैं स्ट्रिंग स्वरूपण% ऑपरेटर का उपयोग कर सकता हूं। क्या कोई पाइथन विधि है जो किसी दिए गए नंबर का संकेत लौटाती है? – systempuntoout

+3

हू? आपने अपने प्रश्न में '%' ऑपरेटर का उपयोग किया था! कृपया अपना प्रश्न संपादित करें ताकि यह आपकी वास्तविक आवश्यकता को दर्शाता हो। –

+0

यह एक सुंदरता है, धन्यवाद :) – systempuntoout

43

new string format

>>> '{0:+} number'.format(1) 
'+1 number' 
>>> '{0:+} number'.format(-1) 
'-1 number' 
>>> '{0:+} number'.format(-37) 
'-37 number' 
>>> '{0:+} number'.format(37) 
'+37 number' 
# As the questions ask for it, little trick for not printing it on 0 
>>> number = 1 
>>> '{0:{1}} number'.format(number, '+' if number else '') 
'+1 number' 
>>> number = 0 
>>> '{0:{1}} number'.format(number, '+' if number else '') 
'0 number' 

का प्रयोग करें इसके बाद उन्होंने सुझाव दिया गया है % ऑपरेटर

+0

0 -> '+ 0', ओपी क्या चाहता है नहीं। –

+0

हां, क्षमा करें, मैंने देखा है कि जिस क्षण मैंने बटन दबाया था। मैंने इसे सही कर दिया है। – Khelben

+1

अच्छा जवाब! आपको प्रारूप() के अंदर घटकों को स्पष्ट रूप से अनुक्रमित करने की आवश्यकता नहीं है, इसलिए '{: +}' और '{: {}}' पर्याप्त हैं। वे बेहतर इमोटिकॉन्स भी बनाते हैं। –