exit()、条件、return 或中断 Python 菜单?

exit(), conditionals, return or break on Python menu?

如果我们在 python 上做一个菜单并且用户选择完成交互的选项。最好使用 exit()、条件语句、return 或 break?

带有 break 的示例,我们用 break 停止无限循环:

    def show_menu():
        print('1. Pet kitten\n'
              '0. Exit')


    def start_app():
        while True:
            show_menu()
            user_choice = input('Select an option: ')
            if user_choice == '1':
                pet()
            elif user_choice == '0':
                print('\nBye!')
                break
            else:
                print('\nPlease select a number from the menu.')


    start_app()

exit() 示例,我们使用内置函数 exit() 停止脚本的执行:

    def show_menu():
        print('1. Pet kitten\n'
              '0. Exit')


    def start_app():
        while True:
            show_menu()
            user_choice = input('Select an option: ')
            if user_choice == '1':
                pet()
            elif user_choice == '0':
                print('\nBye!')
                exit()
            else:
                print('\nPlease select a number from the menu.')


    start_app()

带有条件的示例,while 在条件改变时停止:

    def show_menu():
        print('1. Pet kitten\n'
              '0. Exit')


    def start_app():
        continue_ = True
        while continue_:
            show_menu()
            user_choice = input('Select an option: ')
            if user_choice == '1':
                pet()
            elif user_choice == '0':
                print('\nBye!')
                continue_ = False
            else:
                print('\nPlease select a number from the menu.')


    start_app()

示例 return,我们完成交互 return 随机值:

    def show_menu():
        print('1. Pet kitten\n'
              '0. Exit')


    def start_app():
        continue_ = True
        while continue_:
            show_menu()
            user_choice = input('Select an option: ')
            if user_choice == '1':
                pet()
            elif user_choice == '0':
                print('\nBye!')
                return None
            else:
                print('\nPlease select a number from the menu.')


    start_app()

例如1: 首先在第 2 行给出 4 space 以便打印函数可以留在 show_menu() 函数中,然后在第 11 行定义 #pet() 函数,否则会出现名称错误。然后在第11行之后放一个break语句。

例如3: 当您将 continue 定义为 False 时,while 循环在第 15 行停止。

#HappyCoding

值得注意的是,您的选项分为两类,它们之间有一个重要区别。

一方面,您可以使用 breakreturn 或条件变量来跳出循环,并最终将 return 传递给调用者。在这些选项中,我想说只要选择提供最干净代码的那个即可。

另一方面,您可以使用 exit() 在那里结束程序,然后

如果您希望将其用作顶级菜单以外的其他内容,例如包装在库中以用作其他内容的子菜单,您不希望程序突然退出。

一般来说,exit() 是相当大的炸药块,应该受到尊重。