如何循环返回主菜单?

2023-12-13

我想知道这是否是循环回到 python 主菜单的正确方法。选择选项并完成任务后,脚本需要返回主菜单而不是退出。

#!/usr/bin/python

def mainmenu():
    print ('1. Scan')
    print ('2. Ping')
    print ('3. Exit')
    print

    choice = int(raw_input('> Enter your choice: '))

    if choice == 1:
       print ('Starting Scan\n')
       mainmenu()
    elif choice == 2:
       print ('Starting Ping\n')
       mainmenu()
    elif choice == 3:
       print ('Exiting\n')
       exit(0)
mainmenu()

这种方法可行,但我认为这不是正确的方法。


我建议将整个函数放入 while 循环中以重复该过程。

#!/usr/bin/python

def mainmenu():
    while(True):
        print ('1. Scan')
        print ('2. Ping')
        print ('3. Exit')
        print

        choice = int(input('> Enter your choice: '))

    
        if choice == 1:
            print ('Starting Scan\n')
        elif choice == 2:
            print ('Starting Ping\n')
        elif choice == 3:
            print ('Exiting\n')
            exit(0)
mainmenu()

对于此类程序,不建议使用递归。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何循环返回主菜单? 的相关文章

随机推荐

  • 检查 pickle 转储的依赖关系

    假设我写了下面的代码 import pickle def foo return foo def bar return bar foo pickle dump bar open bar bin wb 此时 我有一个二进制转储 当然不依赖于fo
  • 如何将单击事件处理程序分配给绘制矩形的一部分?

    想象一下我使用 NET 图形类来绘制一个矩形 然后 我如何分配一个事件 以便如果用户单击某个点或某个点范围 就会发生某些事情 单击事件处理程序 我当时正在阅读 CLR via C 和事件部分 我从所读到的内容中想到了这个场景 这样的代码示例
  • matplotlib:使用 fill_ Between 制作彩色三角形

    我用下面的代码在空间中绘制了随机三角形 但我想用颜色填充三角形 我知道fill between matplotlib 中的函数 但是我不确定如何在下面的示例中实现它 import matplotlib pyplot as plt trian
  • Processbuilder 不重定向 StdOut

    是否可以将输出流重定向回进程 或者根本不重定向 背景故事 我正在尝试使用 processbuilder 启动可执行文件 确切地说是源专用服务器 srcds exe 使用 processbuilder 启动它的结果是 该可执行文件的控制台窗口
  • ASP.NET 多语言策略建议

    嗨 兄弟姐妹们 我想知道是否有人会分享他们认为使用 NET 启用动态多语言系统的最佳策略的经验 我有一位客户希望拥有一个半 MRP 系统来存储所有产品的材料和规格 这些信息稍后将用于其他模块 例如发票 采购 营销 提取信息用于打印目的 等等
  • 具有不同版本的多个上下文

    我正在尝试在多个 OpenGL 上下文之间共享列表 这是一个很棒的功能 因为它允许我执行并行渲染线程 但由于我使用的是 CreateContextAttribs 因此我提供了请求特定 OpenGL 实现的可能性 因此 可能会发生某些上下文正
  • 如何在Python中将字符串列表转换为复数? [复制]

    这个问题在这里已经有答案了 我正在尝试编写在 Python 中导入和导出复数列表的代码 到目前为止 我正在尝试使用 csv 模块 我已使用以下方法将数据导出到文件 spamWriter csv writer open data csv wb
  • Fullcalendar/获取 JSON feed(已编辑)

    当使用 ajax 从 JSON feed 获取数据时 我的 fullCalendar 对象中的事件未显示 这是一个问题 我相信 JSON 格式是正确的 因为 JSON aspx 的输出是 id 1 title TESTTITLE info
  • 如何将整个 SQL Server 2014 数据库转储到文件中,以便导入到 Postgres 数据库中?

    我有一个 SQL Server 2014 数据库 我需要从中转储表数据 没有索引 存储过程或其他任何内容 该转储需要 按原样 导入到 Postgres 9 3 数据库中 创建此类转储的正确命令行是什么 我必须承认 这更像是一个笑话 您应该按
  • C# - 从静态 main 调用函数

    我的问题可能非常基本 但我没有找到答案 我在program cs中编写了一个函数 获取2个字符串的public checkSomething 当我尝试从静态 main 调用此函数时 我收到这个错误 非静态字段 方法或需要对象引用 属性 ch
  • 忽略示例函数中的值或 NA

    我在 R 中有一个矩阵 我想从每一行中抽取一个随机样本 我的一些数据在 NA 中 但是在进行随机采样时 我不希望 NA 成为采样的选项 我将如何实现这个目标 例如 a lt matrix c rep 5 10 rep 10 10 rep N
  • Google 脚本从选择范围(不是整个工作表)中删除重复项

    下面是一个用于从电子表格中删除重复行的 Google 表格脚本 虽然它确实可以删除重复的行 但它也会在此过程中破坏单元格内的公式 我目前有一系列工作表 其中所有原始数据都包含在列中A P我的所有公式都归入列Q T 在我尝试限制以下脚本仅适用
  • WIX 安装程序在状态行中显示括号

    我正在使用 WIX 安装程序 它在状态行中显示一些括号 见下图 我没有对 WIX 文件进行更改 但仅更改了已安装的文件 我确实将 WIX 更新到了 v3 11 因为这是在 Visual Studio 2017 中使用 WIX 所必需的 我们
  • DB事务还是Java DAO的方法同步?

    我有基于Java的Web服务器 并且我还有带方法的DAO单例对象 其SQL操作的逻辑必须以某种方式同步以保证数据 完整性 可以同时从多个 Java 线程访问方法 我想知道DB事务包装 可序列化级别 是否优于DAO的方法显式同步在服务器端 是
  • Flask 客户端会话

    开始学习PythonFlaskWeb 应用程序框架 仍在学习曲线上 所以请耐心等待 我想知道客户端会话对于安全 Web 应用程序的目的有多合适 从表面上看 存在一些严重的担忧 由于所有会话变量都被序列化并编码在 cookie 中 因此应该注
  • 如何获取android中存储目录的路径

    有什么方法可以得到 storage 目录 我尝试过Environment getExternalStorageDirectory 但它返回 storage emulated 0我知道我可以使用file getParent 但由于某种原因我不
  • ADF 在 git 模式下发布混乱

    在 git 模式下 当我们想要测试管道时 ADF 会强制我们先发布 我的理解是 发布操作做了两件事 按照给定保存到本地 ADF DEV here 在分支 adf publish 我们的分支 中创建arm模板 指定 但要启用 发布 按钮 我们
  • 释放方法返回的对象

    好吧 我知道这个问题的答案应该是显而易见的 但我需要朝着正确的方向一点推动 我发现自己编写了很多遵循以下模式的方法 NSThing myMethod NSThing thing NSthing alloc init do some stuf
  • 使用 /proc/meminfo 读取 Android 设备的 RAM 总量

    我正在考虑读取 Android 设备的物理 RAM 总量 据我了解 这些信息存储在 proc meminfo中 我怎样才能阅读它 尝试这个 public void getTotalMemory String str1 proc meminf
  • 如何循环返回主菜单?

    我想知道这是否是循环回到 python 主菜单的正确方法 选择选项并完成任务后 脚本需要返回主菜单而不是退出 usr bin python def mainmenu print 1 Scan print 2 Ping print 3 Exi