You need to enable JavaScript to run this app. Python使用while循环调用多函数实现菜单功能无输出该如何修复
优惠活动
大模型
产品
解决方案
定价
更多

Python使用while循环调用多函数实现菜单功能无输出该如何修复

代码问题与修改方案

原代码核心问题

  • 仅调用运算函数但未打印返回结果,自然不会在控制台输出运算值
  • 菜单选择、x/y数值输入逻辑全部写在while循环外,程序只会读取一次输入,选非4的选项时会进入无限空循环,无法重复执行菜单功能
  • 减法函数名使用了Python内置函数min()的名称,会覆盖内置功能,属于命名冲突
  • 函数定义放在执行逻辑之后,不符合常规编码规范,虽不会直接报错但可读性差

具体修改优化点

  • 给每个运算函数的调用结果套上print(),输出到控制台
  • 将菜单打印、选择输入逻辑移入while循环内部,每次循环都可以重新选择功能,同时把x/y数值输入逻辑放在选择判断之后,选退出选项时无需输入数值直接退出
  • 将减法函数名改为sub,避免和内置函数冲突
  • 增加无效选择的提示,提升交互体验

修正后可运行代码

# 函数定义统一放在逻辑执行前
def add(x,y):
  return x + y

def sub(x,y):
  return x - y

def mult(x,y):
  return x * y

loop = True

while loop:
    # 菜单打印逻辑移入循环,每次运行都重新展示
    print ("Select function : ")
    print ("1. Addition")
    print ("2. Substraction")
    print ("3. Multiplication")
    print ("4. Exit")
    print ("")
    z = input("Input your selection here : ")
    
    # 选择退出直接结束循环,无需输入数值
    if z == '4':
        print("程序退出")
        loop = False
        continue
    
    # 选运算功能再读取数值
    x = int(input("Enter x value : "))
    y = int(input("Enter y value : "))
    
    if z == '1':
        print("运算结果:", add(x,y))
    elif z == '2':
        print("运算结果:", sub(x,y))
    elif z == '3':
        print("运算结果:", mult(x,y))
    else:
        print("无效选择,请输入1-4范围内的选项")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 12:39:04