Python: TypeError: ne peut pas concaténer les objets 'str' et ' int ' [dupliquer]
cette question a déjà une réponse ici:
- comment concaténer des objets str et int? 3 réponses
j'ai ce programme python qui ajoute des chaînes à des entiers:
a = raw_input("Enter a: ")
b = raw_input("Enter b: ")
print "a + b as strings: " + a + b
a = int(a)
b = int(b)
c = a + b
str(c)
print "a + b as integers: " + c
je reçois cette erreur:
Python: TypeError: cannot concatenate 'str' and 'int' objects
How puis-je ajouter des chaînes d'entiers?
9 réponses
il y a deux façons de résoudre le problème causé par la dernière déclaration print
.
vous pouvez attribuer le résultat de l'appel str(c)
à c
comme correctement montré par @jamylak et ensuite concaténer toutes les chaînes, ou vous pouvez remplacer le dernier print
simplement par ceci:
print "a + b as integers: ", c # note the comma here
dans lequel cas
str(c)
n'est pas nécessaire et peut être supprimé.
Résultat de l'essai:
Enter a: 3
Enter b: 7
a + b as strings: 37
a + b as integers: 10
avec:
a = raw_input("Enter a: ")
b = raw_input("Enter b: ")
print "a + b as strings: " + a + b # + everywhere is ok since all are strings
a = int(a)
b = int(b)
c = a + b
print "a + b as integers: ", c
str(c)
retourne une nouvelle string representation of c
, et ne mute pas c
elle-même.
c = str(c)
est probablement ce que vous cherchez
si vous voulez concaténer int ou flotte sur une chaîne, vous devez utiliser ceci:
i = 123
a = "foobar"
s = a + str(i)
c = a + b
str(c)
en Fait, dans cette dernière ligne vous n'êtes pas changer le type de la variable c. Si vous n'
c_str=str(c)
print "a + b as integers: " + c_str
ça devrait marcher.
la solution la plus facile et la moins confuse:
a = raw_input("Enter a: ")
b = raw_input("Enter b: ")
print "a + b as strings: %s" % a + b
a = int(a)
b = int(b)
c = a + b
print "a + b as integers: %d" % c
j'ai trouvé ça sur http://freecodeszone.blogspot.com /
j'ai aussi eu le message d'erreur "TypeError: ne peut pas concaténer 'str' et de 'int' "objets". Il s'avère que j'ai juste oublié d'ajouter str() autour d'une variable lors de l'impression. Voici mon code:
def main():
rolling = True; import random
while rolling:
roll = input("ENTER = roll; Q = quit ")
if roll.lower() != 'q':
num = (random.randint(1,6))
print("----------------------"); print("you rolled " + str(num))
else:
rolling = False
main()
je sais, c'était une erreur stupide, mais pour les débutants qui sont très python comme moi, il arrive.
vous pouvez convertir int
en str
en utilisant la fonction de chaîne de caractères:
user = "mohan"
line = str(50)
print(user + "typed" + line + "lines")
C'est ce que j'ai fait pour me débarrasser de cette erreur séparant la variable avec", " m'a aidé.
# Applying BODMAS
arg3 = int((2 + 3) * 45 / - 2)
arg4 = "Value "
print arg4, "is", arg3
Voici la sortie
valeur est -113
(programme sorti avec code: 0)
outre les autres réponses, on pourrait aussi utiliser format()
print("a + b as integers: {}".format(c))
par exemple -
hours = 13
minutes = 32
print("Time elapsed - {} hours and {} minutes".format(hours, minutes))
résultera en sortie - Time elapsed - 13 hours and 32 minutes