我正在尝试编写一个仅将输入的正数之和加起来的程序。当用户输入一个负数时,程序将停止,但不会将该负数添加到总和中。如何获得不将负数加到总和上的程序?这就是我所拥有的。
# 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。
答案 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种解决方案:
value += entered_number
移至您输入新号码之前的位置这样,循环将先评估输入的数字,然后再将其添加到总和中
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