Я пытаюсь создать программу, которая позволяет вам создавать переменные для печати, но функция 'eval' не обнаруживает переменные, созданные с помощью exec
Я пытался сохранить переменные и их значения всписок, но он очень неэффективный и большой, поэтому я пытаюсь переписать код, используя exec и eval
while True:
mainInput = input(">>")
split = mainInput.split()
def createVar():
exec(str(split[0])+'='+str(split[1:]))
def printVar():
Var = eval(str(split[0]))
print(Var)
if len(split) >= 2:
createVar()
elif len(split) == 1 (and it is a variable):
printVar()
else:
pass
Вот код, который я ввел
>>name Johnathan
>>name
Я думал, что яполучит:
>>name Johnathan
>>name
Johnathan
>>
Но вместо этого я получил:
>>name Johnathan
>>name
Traceback (most recent call last):
File "path/to/file", line 15, in <module>
printVar()
File "path/to/file", line 9, in printVar
Var = eval(str(split[0]))
File "<string>", line 1, in <module>
NameError: name 'name' is not defined
Как я могу это исправить, и есть ли лучший способ, или я должен придерживаться моего старого метода?И как я могу определить, является ли строка также переменной?Заранее спасибо!