2011-08-09 11 views
4

지금 Python을 배우고 있습니다. 어쨌든, 나는 작은 문제가있다.TypeError : 'str'및 'int'객체를 연결할 수 없습니다.

x = 3 
y = 7 
z = 2 

print "I told to the Python, that the first variable is %d!" % x 
print "Anyway, 2nd and 3rd variables sum is %d. :)" % y + z 

을하지만 파이썬은 다른 생각 - TypeError: cannot concatenate 'str' and 'int' objects을 : 여기에 문제가 표시되지 않습니다.

왜 그렇습니까? 나는 모든 변수를 문자열로 설정하지 않았다 ... 내가 보는 것만 큼. 그래서 s % y + z(s % y) + z로 구문 분석, (y+z)

+4

현재 버전의 Python에서 문자열 형식을 지정하는 가장 좋은 방법은'str.format()'함수입니다. ''0 '은 파이썬 2.7+에서 생략 될 수 있고, 그 경우에는'{}'이 될 것입니다. .) – JAB

답변

13

%+보다 더 높은 우선 순위를 가지고 :

9

당신은 괄호를 넣어해야합니다. s 경우

s % x는 문자열이며, 문자열 (s % y의 결과)와 정수 (z의 값)를 추가하는 시도 (s % y) + z 문자열이다.

+0

쿨, 고마워. 왜 이렇게이다? :) – daGrevis

+5

python이 당신이하고 있다고 생각하지 않는다면 ("어쨌든 % d"% y) + z – carlosdc

+3

'%'는'+'보다 우선 순위가 낮으므로'a % b + c'는'(a % b) + c'이고, 원하는 것은'% (b + c)'이다. –

관련 문제