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

新手上路,请多包涵

我正在尝试使用 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)

原文由 kkx07805 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 545
2 个回答

这是因为总和总是 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)

原文由 Will Allen 发布,翻译遵循 CC BY-SA 4.0 许可协议

您不断修改名为 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)

原文由 Rob Bricheno 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题