如何创建变量,将其名称作为用户的输入?

时间:2016-11-10 14:25:11

标签: python python-3.x

我想从python3中的用户获取输入字符串。例如:abc是一个输入字符串。现在我想用" abc"创建一个字典内幕我的程序。 name.Is有可能吗?

1 个答案:

答案 0 :(得分:0)

这是非常可能的,但我不建议尝试这样做。如果你真的需要你所要求的东西,那么这样的东西就会起作用:

>>> exec(input("Enter name: ") + ' = {}')
Enter name: myDict
>>> myDict
{}
>>> locals()['myDict']
{}
>>>

但通常A bad idea to use exec()input()的组合。没有它,通常有更好的方法来做某事。事实上,有更好的方法。

不是尝试根据用户输入创建变量,而是使用字典。这样,您就可以很好地控制“变量”。您可以轻松扩展它,以便从用户输入向变量字典添加多个“变量”:

>>> varDict = {}
>>> name = input("Enter name: ")
Enter name: myDict
>>> varDict[name] = {}
>>> varDict[name]
{}

您可以使用while循环和input()动态创建变量。创建一个字典来保存所有用户输入的变量。创建一个while循环,然后向用户询问变量名称和值:

>>> varDict = {}
>>> while True:
        name = input("Enter a variable name: ")
        value = input("Enter a variable value: ")
        varDict[name] = value


Enter a variable name: var1
Enter a variable value: a
Enter a variable name: var2
Enter a variable value: b
Enter a variable name: var3
Enter a variable value: c
Enter a variable name: 
Traceback (most recent call last):
  File "<pyshell#12>", line 2, in <module>
    name = input("Enter a variable name: ")
KeyboardInterrupt
>>> varDict
{'var1': 'a', 'var2': 'b', 'var3': 'c'}
>>>