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

标签 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) 作为可调用函数,并在打印时给出错误。所以我的问题是如何解决这个问题?

最佳答案

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

dic[Q]

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

<小时/>

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

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

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

关于python:执行字典中的内容(命令),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31823361/

相关文章:

python - 如何仅在 Python 中升级虚拟环境中的包?

python - 如何在 Ubuntu 11.10 中安装 Django

python - 如何检查字符串是否是 Python 中的有效正则表达式?

java - 在枚举中添加映射并将键和值放入其中?

python - 迭代 2 个字典并比较值,然后附加内部列表

python - Django 1.7 makemigrations 不工作 - 没有名为的列

C++ 将一组整数变量映射到值的有效方法

Java Map<String, Map<String, Object>> 转换为 String 并返回

python - 在循环中合并Python数组?

python - 支持二进制的 Tornado websockets 第 2 部分