python 2:使用用户定义/命名变量

时间:2016-11-15 16:11:41

标签: python python-2.7

是否可以使用用户定义的名称/值创建变量 然后让用户使用操作来计算它们?

我尝试使用字典,但我希望用户能够输入 类似于key1_name + key2_name,然后返回所选操作的输出

所以例如: 让用户输入2个变量,并使用他选择的名称, 然后让用户使用名称输入操作并返回结果

numbers = {}
numbers['1'] = 50
numbers['2'] = 100
numbers['efg'] = 200

如何创建一个函数,我让用户输入例如1 + 2 + efg或2 * efg * 2 + 1然后将其返回 操作的结果?

我可以让用户输入efg * 10然后让函数返回数字的结果[' efg'] * 10

我尝试这个例子让我的问题更加清晰 这样,如果我输入名称[' chosenname'] * 10作为操作,它会返回正确的结果 如何使用输入来使其工作,例如selectedname * 10,用户必须只输入密钥名称?

numbers = {}
name = raw_input('name')
value = input('value')
numbers[name] = value

operation = input('operation')
print operation

1 个答案:

答案 0 :(得分:1)

您可以转换输入的变量,将numbers字典与regular expressions一起使用。

import re
...
operation = raw_input('operation')
operation = re.sub(r'([a-zA-Z_0-9]+)', r'numbers["\1"]', operation)
result = eval(operation)
print result