Fehler: 'int' Objekt kann nicht subskribiert werden

  • Ich habe einen einfachen Code ausprobiert, den Namen und das Alter einer Person ermittelt und ihn / sie wissen lassen, wann sie 21 Jahre alt sind ... und nicht auf Negative und all das, nur zufällig.

    Ich erhalte diesen 'int' object is not subscriptable -Fehler immer wieder.

     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."
     
    11 November 2015
    Kevin GuanRuben
6 answers
  • Wenn Sie x = 0 eingeben, wird eine neue int -Variable (Name) erstellt und dieser eine Null zugewiesen.

    Wenn Sie x[age1] eingeben das ist der Versuch, auf den Eintrag age1 zuzugreifen, als ob x ein Array wäre.

    22 November 2011
    Jonathon Reinhart
  • Das Problem liegt in der Zeile

     int([x[age1]])
     

    Sie möchten

     x = int(age1)
     

    Sie müssen das int auch in einen String für die Ausgabe konvertieren ...

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

    Das vollständige Skript sieht folgendermaßen aus:

     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."
     
    22 November 2011
    Charles
  • Wenn Sie x = 0 schreiben, ist x ein Int ... also können Sie x[age1] nicht machen, da x int

    ist
    13 November 2015
    samayo Юрий Светлов
  • Was versuchen Sie hier zu tun: int([x[age1]]) ?? Es macht keinen Sinn.

    Sie müssen nur die Eingabe des Alters in int umwandeln:

     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)
     
    22 November 2011
    juliomalegriaopensas
  • Sie müssen age1 zuerst in int konvertieren, damit das Minus möglich ist. Danach drehen Sie das Ergebnis wieder zur Anzeige:

     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."
     
    22 November 2011
    勿绮语Hoppo
  •  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")
     
    03 October 2017
    Thomas