2013-10-30 2 views
0

나는 출력이 필요 위 코드를 정확한 간격으로 정확히 출력하도록이 코드를 작성하는 방법은 무엇입니까?파이썬 간격과 %

print("Video Games:", total, "/8 (or", total*100/8,"%)") 

을하지만 공간이;

나는 시도 8/8 및 8/8 대신에 8/8; 100.0 % 대신 100.0 %

답변

5

당신은 사용할 수 String formatting (모두 파이썬 2 또는 3)이 같은 :

파이썬 3.0
out = "Video Games: {total}/8 (or {percent}%)".format(total=total, percent=total*100/8) 
print(out) 

위 제공 :

Video Games: 7/8 (or 87.5%) 

또는 파이썬을 2.0 아래의 (에 의한 정수 나누기에) 얻을 :

Video Games: 7/8 (or 87%) 

편집 : 이에 대한 Gnibbler에 대한 모든 신용 :

그것은 문자열 포맷이 비율 계산을 돌볼 수 있도록함으로써 짧은, 통제 된 방식으로 수행 할 수 있습니다

:

out = "Video Games: {total}/8 (or {ratio:.2%})".format(total=total, ratio=total/8.0) 
print(out) 

이 또한 제공

이 (소수점 사항을주의하고) 끝에 0 :

Video Games: 7/8 (or 87.50%) 
+1

체크 아웃 링크 비율의 예를 곱한 것 때문에 %, 그것은 비율의 의미는 –

+0

@gnibbler을 게시! 그것은 놀라 울 정도입니다! 나는 당신의 답변이나 코멘트에서 아무것도 배운 적이 없어 !!! –

0

당신이 사용할 수있는 것은 다음과

print "Video Games: %d/8 (or %0.2f%%)" % (total, total*100/8) 
0

파이썬에는 형식이 지정된 문자열을 만드는 방법이 너무 많이 있습니다. 내가 가장 좋아하는 아직 만 간략하게 언급 된 언급되지 않았습니다

print "Video Games: %d/8 (or %.1f%%)" % (total, total*100/8.0) 

아래 파이썬 2.7의 경우, 정수 나누기에 대한주의 (내가 분모 8.0이 그 이유이다). 백분율은 %%이며 문자가 %으로 해석되도록합니다.

대체 문자열이 많아서 문자열에 어떤 대체 문자열이 해당하는지 추적 할 수없는 확장 문자열이 있습니다. 그것은 이렇게 가고 다음 vars() 호출이 %(total)d%(percentage).1f 위해 삽입하는 것을 알 수 있도록, 현재 이름 공간에있는 모든 변수를 포함 {'total': 8, 'percentage': 100.0, ...} 생산

percentage = total*100/8.0 
print "Video Games: %(total)d/8 (or %(percentage).1f%%)" % vars() 

. 좀 더 자세한 정보이지만 더 많은 자체 문서화가 가능합니다.당신이 percentage에 대한 새로운 변수를 생성하지 않은 경우, 당신은 할 수 있었다 : 나는 + 반복적으로 복사 문자열이 문자열 연결을 알았을 때

print "Video Games: %(total)d/8 (or %(percentage).1f%%)" % {"total": total, "percentage": total*100/8.0} 

내가 이것을 사용하기 시작 : 많은 + 징후로 큰 문자열을 구축 문자열 길이에서 O (n^2)에 접근하는 것은 매우 비효율적 일 수 있습니다. 대부분의 경우 초소형 속도 최적화이지만 방금 습관을 가졌고 코드를 읽는 것이 훨씬 쉽습니다.

+0

-1 % - 서식은 [더 이상 사용되지 않으며 향후 어느 시점에서 사라질 수 있습니다.] (http://docs.python.org/release/3.1.5/library/stdtypes.html#old-string-formatting-operations) –

1

str.format에는 인쇄 비율에 대한 특별한 트릭이 있습니다.

"Video Games: {total}/8 or {percent:.1%}".format(total=total, percent=total/8.0) 

.1 수단 "소수점 자리"가 암시 적으로 100

+0

파이썬의 버전에 따라 퍼센트 값이 0이 아닌 값을 얻으려면 float으로 나누어야 할 수도 있습니다. 파이썬 2에서는'7/8 == 0'입니다. –

+0

파이썬 3처럼 보일 지 모르지만 안전을 위해'.0'을 추가해야합니다. –

관련 문제