尝试使用while循环计算数字总和

时间:2018-10-26 11:04:36

标签: python

我正在尝试使用while循环计算多个数字的总和。输入负数时,应打印数字的总和。当我运行代码时,它所做的就是打印输入的最后一个正数。这是当前的无效代码:

sum = 0
number = 1
while number > 0:
    number = int(input('Enter a positive number: '))
    if number > 0:
        tot = sum + number
print("The sum of the numbers is", tot)

4 个答案:

答案 0 :(得分:3)

您一直在修改名为tot的变量,但是每次都会用sum(0)加number(当前数字)覆盖。

相反,每次将总数添加到sum中,如下所示:

sum = 0
number = 1
while number > 0:
    number = int(input('Enter a positive number: '))
    if number > 0:
        sum = sum + number
print("The sum of the numbers is", sum)

现在,sum将随着您输入正数而保持增长。您根本不需要变量tot

您甚至可以使用这个很酷的“ +=”运算符直接增加sum的值并为您节省一些输入:

sum = 0
number = 1
while number > 0:
    number = int(input('Enter a positive number: '))
    if number > 0:
        sum += number
print("The sum of the numbers is", sum)

答案 1 :(得分:1)

您可能已经混淆了变量名totsum。 如果将tot替换为sum,则输出将是正确的总和。 这样,sum会根据其先前值正确更新:

sum = 0
number = 1
while number > 0:
    number = int(input('Enter a positive number: '))
    if number > 0:
        sum = sum + number
print("The sum of the numbers is", sum)

答案 2 :(得分:0)

在每次迭代中,都将添加带有sum变量的数字,该变量被初始化为0。因此需要更改加法表达式,并在每次迭代中使用前一次迭代sum +在每次迭代中输入新的数字来更新总和变量。

代码:

sum = 0
number = 1
while number > 0:
    number = int(input('Enter a positive number: '))
    if number > 0:
        sum = sum + number
print("The sum of the numbers is", sum)

输出:

enter image description here

答案 3 :(得分:0)

这是因为sum始终为0-请尝试使用此方法;

tot = 0
number = 1
while number > 0:
    number = int(input('Enter a positive number: '))
    if number > 0:
        tot = tot + number
print("The sum of the numbers is", tot)