파이썬에서 백분율 값을 인쇄하는 방법은 무엇입니까? str(float(1/3))+’%’ 그리고 그것은 보여줍니다

이것은 내 코드입니다.

print str(float(1/3))+'%'

그리고 그것은 보여줍니다 :

0.0%

그러나 나는 얻고 싶다 33%

어떡해?



답변

format백분율 부동 소수점 정밀도 유형을 지원합니다 .

>>> print "{0:.0%}".format(1./3)
33%

정수 나누기를 원하지 않으면 다음에서 Python3의 나누기를 가져올 수 있습니다 __future__.

>>> from __future__ import division
>>> 1 / 3
0.3333333333333333

# The above 33% example would could now be written without the explicit
# float conversion:
>>> print "{0:.0f}%".format(1/3 * 100)
33%

# Or even shorter using the format mini language:
>>> print "{:.0%}".format(1/3)
33%

답변

형식화 방법에보다 편리한 ‘퍼센트’형식화 옵션이 있습니다 .format().

>>> '{:.1%}'.format(1/3.0)
'33.3%'

답변

내가이 간단한 접근법을 제안한 사람은 아무도 없었기 때문에 완전성을 위해서만 :

>>> print("%.0f%%" % (100 * 1.0/3))
33%

세부:

  • %.0f소수점 0으로 플로트 인쇄를 나타내 므로 %.2f인쇄33.33
  • %%리터럴을 인쇄합니다 %. 원본보다 약간 더 깨끗합니다+'%'
  • 1.01디비전이 플로트되도록 강제하는 대신에 더 이상0.0

답변

정수를 나눈 다음 float로 변환합니다. 대신 수레로 나눕니다.

보너스로 여기에 설명 된 멋진 문자열 형식화 방법을 사용하십시오 : http://docs.python.org/library/string.html#format-specification-mini-language

퍼센트 변환 및 정밀도를 지정합니다.

>>> float(1) / float(3)
[Out] 0.33333333333333331

>>> 1.0/3.0
[Out] 0.33333333333333331

>>> '{0:.0%}'.format(1.0/3.0) # use string formatting to specify precision
[Out] '33%'

>>> '{percent:.2%}'.format(percent=1.0/3.0)
[Out] '33.33%'

큰 보석!


답변

Python 3 f-string 솔루션을 추가하기 만하면됩니다.

prob = 1.0/3.0
print(f"{prob:.0%}")

답변

그런 다음 대신이 작업을 수행하려고합니다.

print str(int(1.0/3.0*100))+'%'

.0수레와로를 나타냅니다 int()나중에 다시 정수로 라운드 그들.