J'essayais un simple morceau de code, obtenais le nom et l'âge de quelqu'un et le lui faisais savoir quand il aurait 21 ans… sans tenir compte des négatifs et de tout ça, juste au hasard.
Je continue à avoir ce 'int' object is not subscriptable
Erreur.
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."
Le problème est dans la ligne,
int([x[age1]])
Ce que tu veux c'est
x = int(age1)
Vous devez également convertir le 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."
Lorsque vous tapez x = 0
qui crée une nouvelle variable int
(nom) et lui attribue un zéro.
Lorsque vous tapez x[age1]
qui tente d'accéder au age1
_ e entrée, comme si x
était un tableau.
Quand vous écrivez x = 0
, x
est un int ... vous ne pouvez donc pas faire x[age1]
parce que x
est int
Qu'est-ce que vous essayez de faire ici: int([x[age1]])
?? Cela n'a aucun sens.
Il vous suffit de convertir l’âge en tant que 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)
Vous devez convertir age1 en int d'abord, pour que vous puissiez faire le moins. Après cela, retournez le résultat en chaîne pour l'affichage:
name1 = raw_input("What's your name? ")
age1 = raw_input ("how old are you? ")
twentyone = str(21 - int(age1))
print "Hi, " + name1+ " you will be 21 in: " + twentyone + " years."
Eh bien, toutes ces réponses sont correctes, mais voici une façon plus moderne de le faire!
name1 : str = input("What's your name? ")
age1 : int = int(input ("how old are you? "))
twentyone : int = 21 - age1
print('Hi, {}, you will be 21 in: {} years'.format(name1, age1))
name1 = input("What's your name? ")
age1 = int(input ("how old are you? "))
twentyone = str(21 - int(age1))
if age1<21:
print ("Hi, " + name1+ " you will be 21 in: " + twentyone + " years.")
else:
print("You are over the age of 21")