web-dev-qa-db-fra.com

Pourquoi est-ce que j'obtiens l'erreur "TypeError: coercing to Unicode: need string or buffer, int found"?

Après avoir exécuté ce petit programme:

#!/usr/bin/env python2.7
# -*-coding:utf-8 -*
a = 1
b = 2
c = 3
title = u"""a=""" + a + u""", b=""" + str(b) + \
    u""", c=""" + str(c)
print(title)

J'obtiens l'erreur suivante:

u""", c=""" + str(c)
TypeError: coercing to Unicode: need string or buffer, int found

Mais ce qui suit fonctionne très bien!

#!/usr/bin/env python2.7
# -*-coding:utf-8 -*
a = 1
b = 2
c = 3
title = u""", b=""" + str(b) + \
    u""", c=""" + str(c)
print(title)

Quelqu'un peut-il m'expliquer ce qui se passe?

19
Agmenor

Vous n'avez pas encapsulé a dans un appel à str. Vous devez faire str(a) où vous avez a, comme vous l'avez fait pour b et c.

39
BrenBarn