Python计算算术均值时出现Zero Division Error问题求助
解决Python算术均值程序的ZeroDivisionError问题
问题根源
你的代码里第一个条件判断if c>0 or c<0: continue完全搞反了逻辑:只要输入的是非0数值,就直接执行continue跳过循环里剩下的所有代码,导致累加总和s和计数k的代码根本没机会运行,k始终是初始值0,最后执行s/k自然触发零除错误。
另外循环的终止逻辑也冗余,同时用了break和a=False,完全没必要。
修正后的代码
k = 0 # 数值数量 s = 0 # 数值总和 print("输入多个数值,输入0结束") while True: try: c = int(input()) except ValueError: print("请输入有效的整数") continue if c == 0: break # 输入0,终止循环 # 非0数值才累加 s += c k += 1 # 先判断是否有有效输入,再计算均值 if k > 0: print(f"算术均值为: {s/k}") else: print("没有输入有效数值,无法计算均值")
关键修改点
- 移除了错误的
continue语句,让非0数值能正常进入累加流程 - 用
while True简化循环控制,输入0时直接break终止 - 添加了
try-except捕获非整数输入的异常,提升程序健壮性 - 增加了
k>0的判断,提前避免零除错误
内容的提问来源于stack exchange,提问作者uhhyem
相关产品推荐
相关产品推荐

