为什么我需要多次输入 exit 命令才能离开控制台应用程序?

亚当·马尔切夫斯基

我正在编写一个控制台应用程序,每次用户键入“退出”时都应关闭该应用程序。它仅在启动函数被调用一次时才有效,否则我必须多次输入“退出”。

例如:我运行应用程序,输入“1”、“食谱”、“退出”,它运行良好。当我输入“1”、[enter]、“2”、“exit”时——我需要再输入一次“exit”......或更多次(取决于函数调用次数)。

启动功能

def start():
    running = 'on'
    while running == 'on':
        recipes.show_recipes()

        recipe_choice = input("...")
        if recipe_choice == "exit":
            running = 'off'
        else:
            try:
                recipes.show_recipes(int(recipe_choice))
            except IndexError:
                print("...")
                start()
            except ValueError:
                print("...")
                start()

            response = input("...")
            if response == "recipe":
                #opening recipe .pdf file
                openrecipe(list(list(recipes.recipes.values())[int(recipe_choice)-1].values())[2], shell=True)
                start()
            elif response == "exit":
                running = 'off'
            else:
                start()

运行程序

start()

我想这个解决方案很简单,但我不明白为什么我的应用程序会这样。我想在控制台中输入“退出”的任何时候关闭程序。

狗版本

您不需要一遍又一遍地调用 start() - 一旦您的程序到达其中一个 if 子句的末尾,它应该从 while 循环的开头重新开始。否则,您将启动必须手动退出的新循环。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么Delphi控制台应用程序需要表格才能使用TSQLConnection?

来自分类Dev

需要完全清理/重建,然后才能在Visual Studio中运行控制台应用程序

来自分类Dev

重定向控制台应用程序的标准输入

来自分类Dev

控制台应用程序不想读取标准输入

来自分类Dev

WPF应用程序内部的控制台输入

来自分类Dev

WPF应用程序内部的控制台输入

来自分类Dev

在控制台应用程序中使用async / await时,为什么需要AsyncContext?

来自分类Dev

什么是vNext控制台应用程序?

来自分类Dev

为什么我的控制台应用程序立即消失

来自分类Dev

为什么我的控制台应用程序立即消失

来自分类Dev

为什么我的控制台应用程序发出蜂鸣声?

来自分类Dev

为什么我的控制台应用程序不等待第37和38行?

来自分类Dev

为什么在控制台购买时无法在我的应用程序中使用此功能?

来自分类Dev

为什么我的节点应用程序没有登录到终端或Chrome控制台?

来自分类Dev

为什么我的控制台应用程序从System32运行?

来自分类Dev

为什么我不能从控制台运行 hibernate maven 应用程序?

来自分类Dev

我应该在哪里放置应用程序的yiic文件来执行控制台命令?

来自分类Dev

询问应用程序在做什么(Java,独立控制台应用程序)

来自分类Dev

向我的Winforms应用程序添加命令行支持时,使用相同的EXE文件或添加新的控制台应用程序项目更好吗?

来自分类Dev

需要帮助来了解我的C#控制台应用程序中的动态菜单

来自分类Dev

C ++控制台应用程序使其他CMD窗口无法接受控制台输入

来自分类Dev

阅读键盘输入而不必始终专注于我的控制台应用程序吗?

来自分类Dev

我如何从bat / cmd文件启动控制台应用程序,所以控制台输出将在bat内部?

来自分类Dev

我如何从bat / cmd文件启动控制台应用程序,所以控制台输出将在bat内部?

来自分类Dev

为什么在 Visual Studio 中用 C++ 编写 GUI 应用程序的代码与控制台应用程序不同?

来自分类Dev

为什么某些Unicode字符导致std :: wcout在控制台应用程序中失败?

来自分类Dev

为什么从GTK +应用程序收到这么多控制台消息?

来自分类Dev

为什么在提示文字时C#控制台应用程序会停止运行?

来自分类Dev

为什么运行控制台应用程序的容器在启动后仅退出

Related 相关文章

  1. 1

    为什么Delphi控制台应用程序需要表格才能使用TSQLConnection?

  2. 2

    需要完全清理/重建,然后才能在Visual Studio中运行控制台应用程序

  3. 3

    重定向控制台应用程序的标准输入

  4. 4

    控制台应用程序不想读取标准输入

  5. 5

    WPF应用程序内部的控制台输入

  6. 6

    WPF应用程序内部的控制台输入

  7. 7

    在控制台应用程序中使用async / await时,为什么需要AsyncContext?

  8. 8

    什么是vNext控制台应用程序?

  9. 9

    为什么我的控制台应用程序立即消失

  10. 10

    为什么我的控制台应用程序立即消失

  11. 11

    为什么我的控制台应用程序发出蜂鸣声?

  12. 12

    为什么我的控制台应用程序不等待第37和38行?

  13. 13

    为什么在控制台购买时无法在我的应用程序中使用此功能?

  14. 14

    为什么我的节点应用程序没有登录到终端或Chrome控制台?

  15. 15

    为什么我的控制台应用程序从System32运行?

  16. 16

    为什么我不能从控制台运行 hibernate maven 应用程序?

  17. 17

    我应该在哪里放置应用程序的yiic文件来执行控制台命令?

  18. 18

    询问应用程序在做什么(Java,独立控制台应用程序)

  19. 19

    向我的Winforms应用程序添加命令行支持时,使用相同的EXE文件或添加新的控制台应用程序项目更好吗?

  20. 20

    需要帮助来了解我的C#控制台应用程序中的动态菜单

  21. 21

    C ++控制台应用程序使其他CMD窗口无法接受控制台输入

  22. 22

    阅读键盘输入而不必始终专注于我的控制台应用程序吗?

  23. 23

    我如何从bat / cmd文件启动控制台应用程序,所以控制台输出将在bat内部?

  24. 24

    我如何从bat / cmd文件启动控制台应用程序,所以控制台输出将在bat内部?

  25. 25

    为什么在 Visual Studio 中用 C++ 编写 GUI 应用程序的代码与控制台应用程序不同?

  26. 26

    为什么某些Unicode字符导致std :: wcout在控制台应用程序中失败?

  27. 27

    为什么从GTK +应用程序收到这么多控制台消息?

  28. 28

    为什么在提示文字时C#控制台应用程序会停止运行?

  29. 29

    为什么运行控制台应用程序的容器在启动后仅退出

热门标签

归档