【问题标题】:Trying to calculate the sum of numbers using while loop尝试使用while循环计算数字的总和
【发布时间】:2018-10-26 11:04:35
【问题描述】:

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

【问题讨论】:

  • 这是橡皮鸭调试应该工作的情况。请尝试一下!
  • 为自己制作两个单独的变量,一个是用户输入,一个是当前总和。这将帮助您将它们彼此分开。
  • tot = sum + number > sum = sum + number。并打印sum
  • tot 是这里的一个新变量。您只需要更新sum。因此,您可以使用sum = sum + number 代替tot = sum + number,并将print 语句中的tot 也替换为sum。顺便说一句,请为sum 使用不同的变量名。我会把它作为练习留给你为什么。

标签: python


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可能混淆了变量名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)
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        在每次迭代中,您将添加带有 sum 变量的数字,该变量初始化为 0。因此需要更改加法表达式并在每次迭代中将 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)
        

        输出:

        【讨论】:

          猜你喜欢
          • 2011-09-29
          • 2016-06-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-19
          • 1970-01-01
          相关资源
          最近更新 更多