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
相关产品推荐
相关产品推荐

