创建简单菜单的正确方法是什么? 到目前为止,我使用了以下简单和标准的方法:
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菜单?
答案 0 :(得分:1)
更可扩展的方法是使用查找映射,在Python中称为dict
:
如果您有两个功能stuff
和other_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
中,我们存储一个元组,其中第一个元素是描述,第二个元素是某个函数。