我正在尝试使用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)
答案 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)
您可能已经混淆了变量名tot
和sum
。
如果将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)
输出:
答案 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)