2010-05-04 3 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로 작업 중이며 % 연산자 형식의 문자열을 사용할 수 있는지 확실하지 않습니다. 주어진 숫자의 부호를 반환하는 파이썬 메소드가 있습니까? – 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', OP가 원하는 것이 아닙니다. –

+0

예, 죄송합니다. 버튼을 눌렀을 때가 눈치 챘습니다. 나는 그것을 바로 잡았다. – Khelben

+1

좋은 답변입니다! format() 내에서 명시 적으로 구성 요소의 색인을 생성 할 필요가 없으므로'{: +}'및'{: {}} '만으로 충분합니다. 그들은 또한 더 좋은 이모티콘을 만듭니다. –