You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求助:输入'e'终止所有循环,输入'm'返回菜单的实现问题

问题解决:输入'm'无法返回菜单的问题

你的代码核心问题在于最外层while True循环末尾有一个无条件的break语句——不管你输入'm'还是'e',执行完选择重复操作的循环后,都会触发这个break,直接退出最外层循环,导致输入'm'也会退出程序。

修改方案

  1. 移除最外层循环末尾的无条件break
  2. 在选择重复操作的循环结束后,根据用户输入的repeat值决定是否终止最外层循环:
    • 输入'm':回到最外层循环开头,重新显示菜单
    • 输入'e':终止最外层循环,退出程序

修改后的完整代码

def A():
    print("a")
def B():
    print("B")
def Menu():
    print("Menu")
    print("1.A")
    print("2.B")

while True:
    Menu()
    # 选择功能的循环
    while True:
        option = input("Choose a or b: ")
        if option == 'a':
            A()
            break
        elif option == 'b':
            B()
            break
        else:
            print("Choose 'a' or 'b' only")
    # 选择是否返回菜单或退出的循环
    while True:
        repeat = input("Enter 'm' to return menu, 'e' to exit: ")
        if repeat not in ['m', 'e']:
            print("Choose 'm' or 'e' only")
            continue
        break
    # 根据输入决定是否退出程序
    if repeat == 'e':
        break

逻辑说明

  • 最外层while True循环负责重复执行「显示菜单→选择功能→选择后续操作」的流程
  • 功能选择循环确保用户输入有效的'a'或'b'后,才进入下一步
  • 重复操作循环确保用户输入有效的'm'或'e'后,再判断后续走向:输入'e'则退出整个程序,输入'm'则回到菜单重新开始流程

内容的提问来源于stack exchange,提问作者anonymous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 12:45:41