변종

2016-11-22 2 views
0

주어진 내가 파이썬에서 print 문이 있다고 가정변종

print "components required to explain 50% variance : %d" % (count) 

이 문은 ValuError을 제공하지만이 print 문이있는 경우 :

print "components required to explain 50% variance" 

는 이유는 무엇입니까 이 일이 일어날까요?

+1

분산을 설명하는 데 필요한 '인쇄'구성 요소 : % d "% (개수) ' – styvane

+0

'.format'은 더 정교하며 머리를 위로합니다. –

답변

7

오류 메시지가 여기에 꽤 도움이된다 :

>>> count = 10 
>>> print "components required to explain 50% variance : %d" % (count) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: unsupported format character 'v' (0x76) at index 35 

그래서 파이썬은 % v를보고 그것이 형식 코드라고 생각합니다. 그러나 v은 지원되지 않는 형식 문자이므로 오류가 발생합니다.

수정은 분명히 알 수 있습니다. 형식 코드의 일부가 아닌 %을 이스케이프 처리해야합니다. 어떻게 그걸합니까? 당신은 또한 상황의 많은 더 편리하고 강력 .format 사용할 수

>>> print "components required to explain 50%% variance : %d" % (count) 
components required to explain 50% variance : 10 

참고 : 다른 % 추가함으로써

>>> print "components required to explain 50% variance : {:d}".format(count) 
components required to explain 50% variance : 10 
4

% 연산자를 문자열에 적용을위한 대체를 수행 문자열의 모든 '%'. '50 % '는 유효한 대체를 지정하지 않습니다. 단순히 문자열에 백분율 기호를 포함 시키려면 두 배로해야합니다.

관련 문제