TypeError: невозможно объединить объекты 'str' и 'int' - PullRequest
4 голосов
/ 09 августа 2011

Я учу Python сейчас, ура! Во всяком случае, у меня небольшая проблема. Я не вижу здесь проблемы:

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.

Почему это так? Я не установил ни одной переменной как строку ... так много, как вижу.

Ответы [ 2 ]

13 голосов
/ 09 августа 2011

% имеет более высокий приоритет, чем +, поэтому s % y + z анализируется как (s % y) + z.

Если s - строка, то s % x - строка, а (s % y) + z пытается добавить строку (результат s % y) и целое число (значение z).

8 голосов
/ 09 августа 2011

Вам нужно поставить круглые скобки: (y+z)

...