82 votes

Erreur : l'objet 'int' n'est pas inscriptible - Python

J'essayais un simple morceau de code, obtenir le nom et l'âge de quelqu'un et lui faire savoir quand il aura 21 ans... sans tenir compte des aspects négatifs et tout ça, juste au hasard.

Je continue à recevoir cette erreur 'int' object is not subscriptable

 name1 = raw_input("What's your name? ")
age1 = raw_input ("how old are you? ")
x = 0
int([x[age1]])
twentyone = 21 - x
print "Hi, " + name1+ " you will be 21 in: " + twentyone + " years."

116voto

Jonathon Reinhart Points 40535

Lorsque vous tapez x = 0 cela crée une nouvelle int (nom) et lui attribue un zéro.

Lorsque vous tapez x[age1] qui essaie d'accéder à la age1 'th entrée, comme si x était un tableau.

67voto

Charles Points 653

Le problème est dans la ligne,

 int([x[age1]])

Ce que tu veux c'est

 x = int(age1)

Vous devez également convertir l'int en chaîne pour la sortie ...

 print "Hi, " + name1+ " you will be 21 in: " + str(twentyone) + " years."

Le script complet ressemble à,

 name1 = raw_input("What's your name? ")
age1 = raw_input ("how old are you? ")
x = 0
x = int(age1)
twentyone = 21 - x
print "Hi, " + name1+ " you will be 21 in: " + str(twentyone) + " years."

11voto

TJD Points 7208

Lorsque vous écrivez x = 0 , x est un entier... vous ne pouvez donc pas faire x[age1] car x est int

2voto

juliomalegria Points 6281

Qu'essayez-vous de faire ici : int([x[age1]]) ?? Cela n'a aucun sens.

Il vous suffit de convertir l'entrée d'âge en int :

 name1 = raw_input("What's your name? ")
age1 = raw_input ("how old are you? ")
twentyone = 21 - int(age1)
print "Hi, %s you will be 21 in: %d years." % (name1, twentyone)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X