首页 > 解决方案 > 用户输入的数字总和

问题描述

我必须编写一个程序来计算用户输入的数字的总和,直到用户输入“完成”并显示:用户输入了多少数字(元素),这些数字的总和以及平均值。到目前为止,我设法计算了数字计数,但我的程序没有显示输入数字的总和。相反,它显示最后输入的数字。有谁知道我做错了什么?怎么做?

count = 0

while True:
    n=input('enter a number: ')
    if n== 'done':
        break
    count=count + 1
    if int(n) >= 0:
        s=0 + int(n)






print(count)
print(s)

标签: python

解决方案


问题是这条线s=0 + int(n)。这意味着它将重置sn每个循环。您想用s = s + int(n)or替换它s += int(n)

我还进行了一些更改以避免出现其他错误。

这意味着也DONE将注册为done.

if n.lower() == 'done':
    break

要在输入非整数时停止抛出错误,您需要使用一些错误处理。

try:
    n = int(n)

except ValueError as e:
    continue

最后一块

count, s = 0, 0

while True:
    n = input('Enter a number: ')
    
    if n.lower() == 'done':
        break
    
    count += 1

    try:
        n = int(n)

    except ValueError:
        continue

    if n >= 0:
        s += n

print(count, s)

推荐阅读