仅合正数的Python程序

时间:2018-10-04 00:27:45

标签: python python-3.x

我正在尝试编写一个仅将输入的正数之和加起来的程序。当用户输入一个负数时,程序将停止,但不会将该负数添加到总和中。如何获得不将负数加到总和上的程序?这就是我所拥有的。

  # set parameters for user
  print('Enter a positive number then hit enter, When you want to end the 
  process enter a negative number')
  entered_number = 0
  value = 0

  # user enters numbers
  while entered_number >= 0:
      entered_number = int(input('Enter a number: '))
      value += entered_number

  # prints sum of numbers entered

  print('The total sum of the numbers you entered is', value)

如果输入2,2,-1为3,则上面代码的总和为3。 如果我输入2、2,-1,我希望程序的总和为4。

1 个答案:

答案 0 :(得分:2)

循环会将负数添加到变量value中,因为在实际添加输入的(负)数之前您不必终止循环。

while entered_number >= 0:
    entered_number = int(input('Enter a positive number: '))
    value += entered_number # If entered_number is negative it will still
                            # be added, because the loop will terminate 
                            # after this iteration

有2种解决方案

  1. value += entered_number移至您输入新号码之前的位置

这样,循环将先评估输入的数字,然后再将其添加到总和中

while entered_number >= 0:
    value += entered_number
    entered_number = int(input('Enter a positive number: '))
  1. 永远循环并在循环内中断

逻辑与1中相同,只是我们进行了不同的检查。

while True:
    entered_number = int(input('Enter a positive number: '))
    if entered_number < 0:
        break
    value += entered_number # This line will only be reached if we
                            #  haven't breaked out from the loop