web-dev-qa-db-fra.com

Type (s) d'opérande non pris en charge pour +: 'int' et 'str'

J'apprends actuellement Python), donc je n'ai aucune idée de ce qui se passe.

num1 = int(input("What is your first number? "))
num2 = int(input("What is your second number? "))
num3 = int(input("What is your third number? "))
numlist = [num1, num2, num3]
print(numlist)
print("Now I will remove the 3rd number")
print(numlist.pop(2) + " has been removed")
print("The list now looks like " + str(numlist))

Lorsque je lance le programme, en entrant des nombres pour num1, num2 et num3, il renvoie: Traceback (l'appel le plus récent en dernier):

TypeError: unsupported operand type(s) for +: 'int' and 'str'
22
user3077439

Vous essayez de concaténer une chaîne et un entier, ce qui est incorrect.

Remplacez print(numlist.pop(2)+" has been removed") par l'un de ceux-ci:

Conversion explicite de int à str:

print(str(numlist.pop(2)) + " has been removed")

Utilisation , au lieu de +:

print(numlist.pop(2), "has been removed")

Format de chaîne:

print("{} has been removed".format(numlist.pop(2)))
38
Ashwini Chaudhary

essayer,

str_list = " ".join([str(ele) for ele in numlist])

cette déclaration vous donnera chaque élément de votre liste au format string

print("The list now looks like [{0}]".format(str_list))

et,

remplacez print(numlist.pop(2)+" has been removed") par

print("{0} has been removed".format(numlist.pop(2)))

ainsi que.

1
Siva Cn