Как распечатать знак + цифры для положительных чисел в Python

Существует ли лучший способ распечатать + знак цифры на положительных числах?

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

0 должен возвратиться 0 без +.

45
задан systempuntoout 4 May 2010 в 07:27
поделиться

2 ответа

>>> 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
>>>
56
ответ дан 26 November 2019 в 20:58
поделиться

Используйте новый формат строки

>>> '{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'

Он рекомендуется вместо оператора %

58
ответ дан 26 November 2019 в 20:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: