仅合计正数的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