python:执行字典中的内容(命令)

时间:2015-08-05 04:18:24

标签: python dictionary

我在想一个程序获得用户输入的方式,即。 '1'然后它使用字典映射到命令/代码并触发该命令/代码

这是我的代码:

Q = int(input("hi")) 'user will input 1 in here
dic = {'1': input("yo")}
result = dic(Q) 'Q will equal 1 here and program will fire the command 
print(result)

Python将 result = dic(Q)视为可调用函数,并在打印时给出错误。所以我的问题是如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

您的问题是dic是一个字典,您可以使用下标来访问字典的元素,如 -

dic[Q]

此外,当你定义类似 - dic = {'1': input("yo")}的字典时,命令会在此时运行,它不会等待用户输入要运行的命令。

一种简单而安全的方法是对每个命令使用 functions ,然后将该函数添加到字典中,并在用户输入密钥时调用它。示例 -

def inputfunc():
    res = input("yo")
    return res

dic = {1: inputfunc}
Q = int(input("hi"))
if Q in dic:
    result = dic[Q]()
    print(result)

答案 1 :(得分:0)

您需要定义一个函数。

def dic(key):
    fuc_map = dict()
    value = input("yo")
    fuc_map = {'1': value} #map defined here
    return fuc_map.get(key, '')