Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 输入问题中的变量_Python_Variables_Input - Fatal编程技术网

Python 输入问题中的变量

Python 输入问题中的变量,python,variables,input,Python,Variables,Input,因此,我知道如果你这样做: variable1 = 10 variable2 = variable1 variable1 = 10 然后变量2将为10。但如果你这样做了: variable1 = 10 variable2 = variable1 variable1 = 10 然后要求输入: variable2 = input("...") 然后键入variable1作为输入,那么variable2将是'variable1'而不是10。在输入字符串variable1后,如何更改此值,

因此,我知道如果你这样做:

variable1 = 10

variable2 = variable1
variable1 = 10
然后
变量2
将为10。但如果你这样做了:

variable1 = 10

variable2 = variable1
variable1 = 10
然后要求输入

variable2 = input("...")

然后键入
variable1
作为输入,那么
variable2
将是
'variable1'
而不是10。在输入字符串
variable1
后,如何更改此值,使
variable2
等于
variable1

如果您确定确实要这样做,可以使用
eval
,但这是一种不好的做法,并且容易受到任意代码注入的影响

>>> variable1 = 10
>>> variable2 = eval(input())
variable1
>>> variable2
10
稍微好一点的方法可能是使用
globals
locals
内置,但这仍然是一种不好的做法

>>> variable2 = globals()[input()]
variable1
>>> variable2
10

通过这样做,你有什么具体的目标吗?因为最终,用户必须从脚本中“猜测”变量名?用户不应该知道代码中的变量名,imho。更好的方法是使用字典
{'variable1':10}
@Chris\u Rands Very true。也许这是最好的方法,但我的目的是让他完全放弃这个想法。很可能实际的问题会导致一个用户可访问的键-值对列表,而不是脚本中的变量名,但很难看出OP真正想要做什么。