Почему я все время получаю эту ошибку? Я предполагаю, что raw_input() считывается как input(), и он не может видеть, что пользователь вводит строку. Я не знаю, как я могу изменить это, чтобы он мог работать. И нет, вопрос: «Python 2.7, вводящий пользователя и управляющий как строка без кавычек», не отвечает на мой вопрос.превращение строки в переменную (неправильный тип операнда для унарного +: 'str')
options = ["An animal", "A food", "A fruit", "A number", "A superhero name", "A country", "A dessert", "A year"]
#"options" become variables
for i in options:
if i[0:3] == "An ":
exec("%s = %s" % (i[3::], raw_input("Enter " + i + " ")))
else:
exec("%s = %s" % (i[2::], raw_input("Enter " + i + " ")))
Я продолжаю ПОЛУЧАТЬ эту ошибку:
NameError: name 'input' is not defined
Вероятно, это указывает на эту часть: ' raw_input ("Enter", + i + "") '. Вы видите, что в этом плохого? –
@Penguin: сначала присвойте 'raw_input (" Enter ", + i +" ")' переменной, а затем поместите переменную где 'raw_input' теперь. Итак: 'a = raw_input (" Enter ", + i +" ")', а затем 'exec ("% s =% s "% (i [3 ::], a)'. –
Я вижу, что это второй вопрос об этом коде, который вы задали через час, и оба относятся к тем, которые уже были затронуты на этом сайте. Пожалуйста, уделите еще немного времени, чтобы исследовать ваши вопросы, прежде чем спрашивать здесь. Попробуйте переименовать имя исключения с помощью «site: stackoverflow». com ", чтобы увидеть другие ответы SO. – skrrgwasme