正确的方式来制作菜单

时间:2017-01-11 16:05:29

标签: python menu

创建简单菜单的正确方法是什么? 到目前为止,我使用了以下简单和标准的方法:

menu()
    print("1. Do A")
    print("2. Do B")
    choice = input("Choice")
    if choice == 1:
        stuff
    elif choice == 2:
        other stuff
    else:
        print("wrong input")

我读到这不是一个非常好的方法,并且在使用大菜单时它变得不那么有效。我无法记住我读到的地方。 它没有if-elif-else结构,但是通过检查给定的选项是否可用(类似于'如果在选项中选择')开始,但这是关于我能记得的所有内容。 那么有更好/更高级的方法来构建菜单,还是应该坚持使用if-elif-else菜单?

2 个答案:

答案 0 :(得分:1)

更可扩展的方法是使用查找映射,在Python中称为dict

如果您有两个功能stuffother_stuff,则可以将它们放在dict中:

def stuff():
    print('Stuffing a turkey')

def other_stuff():
    print('Stuffing a cuddly toy')

menu = {1: stuff,
        2: other_stuff}

然后可以使用[{1}}或1

键访问它们
2

e.g:

menu[key]()

答案 1 :(得分:1)

我会用字典。

actions = {
    '1': ("Run function1", function1),
    '2': ("Run function2", function2)
}

for i in sorted(actions):
    print('Enter {} to {}'.format(i, actions[i][0]))

entry = input('Command: ')
if entry in actions:
    actions[entry][1]()
else:
    print("No such command")

在字典actions中,我们存储一个元组,其中第一个元素是描述,第二个元素是某个函数。