Ошибка: объект '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."
Ответы
Ответ 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))