Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅合计正数的Python程序_Python_Python 3.x - Fatal编程技术网

仅合计正数的Python程序

仅合计正数的Python程序,python,python-3.x,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

我正在尝试编写一个程序,只对输入的正数求和。当用户输入负数时,程序停止,但不会将负数添加到总和中。如何使程序不将负数加到和中?这是我的

  # 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,我和上面代码的总和就是。
如果我输入2,2,-1,我希望程序的总和为4。

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

有两种解决方案

  • 值+=输入的\u编号
    移动到输入新编号之前
  • 这样,循环将在将输入的数字添加到总和之前对其求值

    while entered_number >= 0:
        value += entered_number
        entered_number = int(input('Enter a positive number: '))
    
  • 永远循环,并在循环内部中断
  • 逻辑与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
    
    为True时:
    输入的\u number=int(输入('输入正数:'))
    如果输入的数字小于0:
    打破
    value+=输入的_编号#只有在我们
    #还没有从循环中跳出来
    
    好的,您面临的问题是什么?我只想添加正数,但当用户输入负数以停止循环并对输入的数字求和时,它会将负数与总数相加。例如用户输入2,然后输入2,-1,加起来是3,但应该是4。你是对的,我推断了这个问题,没有明确说明。谢谢你的字里行间阅读。我编辑了我原来的帖子。再次感谢你的帮助。没问题@BrianMichaels:)我已经编辑了我的答案,没有指出它。提问时的一个好技巧是给出一个示例输入和结果(错误的)输出,然后指定您实际想要的输出。您可以在此处阅读更多信息:
    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