如何更好地打印正数上的加号?
integer1 = 10
integer2 = 5
sign = ''
total = integer1-integer2
if total > 0: sign = '+'
print 'Total:'+sign+str(total)
0应该不需要+就返回0。
如何更好地打印正数上的加号?
integer1 = 10
integer2 = 5
sign = ''
total = integer1-integer2
if total > 0: sign = '+'
print 'Total:'+sign+str(total)
0应该不需要+就返回0。
>>> '{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'
建议使用此方法而不是使用 %
运算符。
>>> print "%+d" % (-1)
-1
>>>
>>> print "%+d" % (1)
+1
>>> print "%+d" % (0)
+0
>>>
这里是官方文档。
**更新** 如果由于某种原因,您不能使用%
运算符,您不需要函数:
>>> 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
>>>
print "Total:" + ["", ""][total > 0] + str(total)
? - Lumos从 Python 3.6 开始:
>>> integer1 = 10
>>> integer2 = 5
>>> total = integer1-integer2
>>> print(f'Total: {total:+}')
Total: +5
或者:for i in range(-1,2):
print (f' {i} becomes {i:+}')
输出:
-1 becomes -1
0 becomes +0
1 becomes +1
+0
,但个人更喜欢这样。 - ErichBSchulzf"{123.456:+.2f}"
=> '+123.46'
- Cees Timmerman
+0
,不是 OP 想要的。 - John Machin{:+}
和{:{}}
就足够了。它们也可以作为更好的表情符号。 - 1''f"{number:{'+' if number else ''}}"
也可行。 简化翻译:原来的字符串格式化方法(f-strings)还支持嵌套使用,所以f"{number:{'+' if number else ''}}"
也是可以的。 - dorukayhan