Подтвердить что ты не робот

Ошибка: объект 'int' не может быть подписан - Python

Я пытался простую часть кода, получил имя и возраст и дал ему знать, когда им исполнилось 21 год... не считая негативов и всего этого, просто случайным.

Я продолжаю получать эту ошибку 'int' object is not subscriptable.

name1 = raw_input("What 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."
4b9b3361

Ответ 1

Проблема в строке,

int([x[age1]])

Вы хотите

x = int(age1)

Вам также нужно преобразовать int в строку для вывода...

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

Полный script выглядит,

name1 = raw_input("What 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."

Ответ 2

При вводе x = 0, который создает новую переменную int (имя) и присваивает ей нуль.

При вводе x[age1], который пытается получить доступ к записи age1 'th, как если бы x был массивом.

Ответ 3

Когда вы пишете x = 0, x - это int... поэтому вы не можете сделать x[age1], потому что x есть int

Ответ 4

Что вы пытаетесь сделать здесь: int([x[age1]])?? Это не имеет никакого смысла.

Вам нужно просто ввести возрастный ввод как int:

name1 = raw_input("What 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)

Ответ 5

Вам нужно сначала преобразовать age1 в int, чтобы он мог сделать минус. После этого верните результат в строку для отображения:

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

Ответ 6

name1 = input("What 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")

Ответ 7

Ну, все эти ответы верны, но вот более современный способ сделать это!

name1 : str = input("What 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))