创建函数execChoice(choice)。 o使用Python的方法来执行将字典对象与名称选项结合使用的switch语句,从字典中调用具有由字符串选择指定的键的函数,然后将该函数传递给函数。
▪通过将变量中的字符串大写来使检查大小写不敏感 选择,然后检查它是否与字典中的键匹配。
o如果该键不在词典中,则应调用MenuOptions模块中的默认功能。
对于有问题的while循环:
•创建变量选择并为其分配一个空字符串。
•创建一个while循环,直到变量选择的值为“ X”,该循环才会停止。 此检查应不区分大小写。
•在while循环中:
o调用菜单模块中的getChoice函数,并将返回值分配给变量选择。 o在“菜单”模块中调用execChoice函数,然后将变量选择传递给该函数。
在以前的情况下,我已经正确地进行了类似的编码,但是,这使我暂停了。我似乎无法绕过while循环部分,而且上面的情况也有问题。
def execChoice(choice):
choices =
{
"S": showPilots(),
"A": addPilot(),
"D": deletePilot(),
"X": done()
}
if dict.keys() not in choices:
default()
from .Menu import *
choice = []
while choice is True:
choice = getChoice(Menu)
'''
Cannot figure out what i need to add after this
'''
预期结果应为上述说明中所述的内容,并且循环/功能应根据指示正确运行。 (尚未运行,仅在没有语法或其他错误的情况下工作。)
答案 0 :(得分:1)
您定义该词典的方式是实际上调用 showPilots()
函数,addPilot()
函数等。
我认为字典旨在容纳功能对象,但实际上并不是调用它们:
def execChoice(choice):
choices = {
"S": showPilots,
"A": addPilot,
"D": deletePilot,
"X": done
}
if choice in choices:
return choices[choice]
else:
return default
然后您将这样称呼它:
# get the function we are supposed to call
f = execChoice(user_input)
# now execute the function
f()