我在Python上迈出了第一步。我看到我们没有switch case语句, 所以我想你们在python中实现一个文本菜单?
由于
答案 0 :(得分:13)
您可能会这样做:
def action1():
pass # put a function here
def action2():
pass # blah blah
def action3():
pass # and so on
def no_such_action():
pass # print a message indicating there's no such action
def main():
actions = {"foo": action1, "bar": action2, "baz": action3}
while True:
print_menu()
selection = raw_input("Your selection: ")
if "quit" == selection:
return
toDo = actions.get(selection, no_such_action)
toDo()
if __name__ == "__main__":
main()
这会将您所有可能的操作函数放入字典中,其中键是您输入的用于运行该函数的函数。然后它从列表中检索动作输入动作,除非输入动作不存在,在这种情况下它会检索no_such_action。
在您基本了解其工作原理后,如果您正在考虑使用Serious Business命令行类型的应用程序,我会查看cmd
framework命令行应用程序。
答案 1 :(得分:5)
一般来说,如果elif会好的,但如果你有很多案件,请考虑使用dict。
actions = {1: doSomething, 2: doSomethingElse}
actions.get(n, doDefaultThing)()
答案 2 :(得分:2)
你可以使用if ... elif。如果你必须选择一个数字,它将是这样的:
n = chosenOption()
if(n == 0):
doSomething()
elif(n == 1):
doAnyOtherThing()
else:
doDefaultThing()
答案 3 :(得分:2)
从“Python简介”一书中查看此topic。 Switch语句被if..elif..elif序列替换。
答案 4 :(得分:0)
关于你的第一个问题我同意Ali A。
关于你的第二个问题:
import sys
sys.exit(1)
答案 5 :(得分:0)
我来到这里寻找同样的事情并最终编写自己的: https://github.com/gerrywastaken/menu.py
你这样称呼它:
import menu
message = "Your question goes here"
options = {
'f': ['[F]irst Option Name', 'First value'],
's': ['[S]econd Option Name', 'Second value'],
't': ['[T]hird Option Name', 'Third value']
}
selection = menu.getSelection(message, options)
它向用户显示一个菜单,他们可以通过括号中的字符选择他们想要的选项。如果他们输入“s”作为他们的选项,则选择将被赋予“第二价值”的值。我本可以让它变得更加漂亮,但我想保持简单,尽管拉取请求非常受欢迎。