提问人:uhhyem 提问时间:11/9/2023 更新时间:11/9/2023 访问量:57
计算算术平均值时 Python 代码中的零除法错误
zero division error in python code while calculating arithmetic mean
问:
a=True
k=0 #amount of numbers
s=0 #sum of numbers
print("Enter multiple numerical values. Entering will be completed when you enter 0")
while a==True:
c=int(input())
if c>0 or c<0:
continue
elif c==0:
break
if c!=0:
s=s+c
k=k+1
else:
a=False
print(str(s/k))
我正在学习如何用 Python 语言编码。我试图编写一个计算算术平均值的程序,但当我尝试将 S(即数字之和)除以 K(即数字的数量)时,会出现零除法错误。但是,k 不等于零。
答:
1赞
JonSG
11/9/2023
#1
目前,您的代码遵循以下两种路径之一:
如果等于你脱离了循环c
0
break
和
如果不等于 然后进行循环的下一次迭代。c
0
(c>0 or c<0)
continue
因此,问题归结为递增且从未执行的代码,然后当您转到时,最终会出现除以 0 的异常。k
s
print(s/k)
如果第一个条目是,您仍然会在此处获得异常,但这会更像您想要执行的操作:0
k=0 #amount of numbers
s=0 #sum of numbers
print("Enter multiple numerical values. Entering will be completed when you enter 0")
while True:
c = int(input())
if c == 0:
break
s = s + c
k = k + 1
print(s/k)
评论
1赞
jakebake
11/9/2023
这可能是解决您问题的最佳答案。我还要补充一点,对于您将来使用的 if/else 语句,该结构通常具有尽可能多的 elif。如果你没有用 else 结束它,那么在 elif 之后加上 if' 并不是一个好的代码。if>elif>else
评论
continue
c>0 or c<0
相当于c != 0
continue
并不意味着“继续这个循环迭代”,而是意味着“中止这个循环迭代,开始下一次迭代”。