2010-05-04 34 views

回答

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,我不确定是否可以使用字符串格式%运算符。有没有一种Python方法返回给定数字的符号? – systempuntoout 2010-05-04 07:21:58

+3

咦?你在你的问题中使用了'%'运算符!请编辑您的问题,以便它反映您的真实需求。 – 2010-05-04 07:27:36

+0

这是一个美丽的,谢谢:) – systempuntoout 2010-05-04 07:35:19

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',不是OP想要的。 – 2010-05-04 07:41:31

+0

是的,对不起,我注意到我点击按钮的那一刻。我纠正了它。 – Khelben 2010-05-04 07:46:16

+1

好的答案!你不需要在format()中显式地索引组件,所以'{:+}'和'{:{}}'就足够了。他们也会制作更好的表情符号。 – 2015-08-11 21:34:03

相关问题