我试图通过用户输入选择一个字典,并从中选择所选字典中列出的要运行的函数。我的代码目前的情况是,它将正确地选择正确的字典,但在选择函数时,它将在输入所需的函数id时工作,但对所选字典中的每个条目重复。我需要做什么来解决这个问题
实际定义的函数只是在测试/调试时打印一个随机数作为占位符。另外,为了在测试/调试时简单起见,我将函数留在它们的十六进制内存位置
calculus = {
'1': cal1,
'2': cal2,
'3': cal3,
}
physics = {
'1': phy1,
'2': phy2,
'3': phy3,
}
def Main():
a = input("Choose equation set. Calculus or Physics: ")
if a == "Calculus":
for item in (calculus.keys()):
print(item,":",calculus.get(item,'-'))
eq_id = input("Enter desired equation function id: ")
eq_arg = input("Press Enter")
calculus[eq_id](eq_arg)
elif a == "Physics":
for item in (physics.keys()):
print(item,":",physics.get(item,'-'))
ph_id = input("Enter desired equation id: ")
ph_arg = input("Press Enter")
physics[ph_id](ph_arg)
下面是一个输出给我的示例:(User input in“”,function name in“”,output in“”)
选择公式集。微积分或物理学:“物理学”
1:(0x7f32a527c6a8处的函数phy1)
输入所需的公式id:“1”
按Enter键
“‘347’”
2:(0x7f32a527c730处的函数phy2)
输入所需的公式id:“3”
按Enter键
“540”
3:(0x7f32a527c7b8处的函数phy3)
输入所需的公式id:“2”
按Enter键
“429”
但我希望它更像这样:
选择公式集。微积分或物理学:“物理学”
1:'物理1'
2:'物理2'
3:'物理3'
输入所需的公式id:“2”
'执行所选函数'
这里您需要的似乎是一个嵌套字典,其中顶级键是“Physics”和“calcular”,然后每个键的值将是您已经指定的字典
这样您就可以在同一个函数中完成所有输入
正如前面提到的注释之一,最好将字典键设置为小写,然后将所有输入转换为小写
最简单的方法是:
但我建议,您将数据结构更改为以下内容:
然后访问它,比如
您可以尝试以下方法:
输出:
相关问题 更多 >
编程相关推荐