如何针对这种特定情况编写while循环?

时间:2019-05-03 19:21:07

标签: python while-loop

创建函数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
'''

预期结果应为上述说明中所述的内容,并且循环/功能应根据指示正确运行。 (尚未运行,仅在没有语法或其他错误的情况下工作。)

1 个答案:

答案 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()