使用while循环的平均程序。无法正确计算

时间:2015-11-12 21:04:40

标签: python loops break

i = 0
result = 0
while i < 10 :
    result += eval(input("Enter a number: "))
    i += 1
    if result < 1 :
        break
    average = result / i   
print (average)

我正在制作一个程序来计算10个数字的平均数,但如果输入负数,它将终止。问题是如果输入负数,程序将不会停止,直到负数大于已输入的所有其他数字。

1 个答案:

答案 0 :(得分:2)

此代码不会必须停止否定号码。如果该负数使运行总计达到非正数,则仅执行此 。例如,如果用户输入以下数字:

4
-2
4

然后运行总计是:

4
2
6

运行总计(result)并非正面。因此break语句的条件不正确。

如果您想在任何时候输入负数(或者更确切地说,根据您的逻辑输入非正数),您需要检查该数字本身,而不是运行总数。像这样:

i = 0
result = 0
value = 0;
while i < 10 :
    value = eval(input("Enter a number: "))
    if value < 1 :
        break
    i += 1
    result += value
    average = result / i   
print (average)