【问题标题】:How to sum numbers from input?如何对输入中的数字求和?
【发布时间】:2016-10-10 03:45:26
【问题描述】:
我正在解决以下问题。
编写一个程序,不断提示输入正整数,并在输入的数字总和超过 1000 时停止。
但是如果输入负整数,我的代码会提前停止。
数字不会相加。
我的代码:
x = int(input("Enter an integer:"))
total = 0
sum = 0
while (0 <= x):
if sum <= 1000:
x += 1
sum += (int(input("Enter an integer:")))
elif sum >= 1000:
break
【问题讨论】:
标签:
python-3.x
input
integer
sum
【解决方案1】:
x = 0
total = 0
sum = 0
while sum <= 1000:
x = int(input("Enter an integer:"))
if x<0:
print("Invalid negative value given")
break
sum += x
第一:
if sum >= 1000:
...
elif sum < 1000:
...
是多余的,因为如果您检查sum >= 1000,并且达到elif,您就知道条件是False,因此sum < 1000 必须为真。所以你可以用
替换它
if sum >= 1000:
...
else:
...
第二:
您想使用x 来检查输入是否为负。直到现在,您每次都将其简单地增加一。相反,您应该首先将输入分配给x,然后将其添加到sum。所以这样做:
x = int(input("Enter an integer:"))
if x<0:
break
sum += x
【解决方案2】:
万一遇到负数就想停下来。
x = 0
total = 0
sum = 0
while (sum <= 1000):
x = (int(input("Enter an integer:"))
if (x < 0):
break
else:
sum += x