我正在python中使用for循环来查找属于该范围的元素之和。如果总和= 5,我还包含了break语句(如果总和达到5,我要求程序停止运行)这在第一个代码段中有效,但是在第二个代码段中,该值最高为30。为什么会这样?
>>> sum=0
>>> for m in range(5,11,2):
... sum+=m
... if sum==5:
... break
...
>>> print(sum)
输出-5
>>> sum=0
>>> for z in range(0,11,2):
... sum+=z
... if sum==5:
... break
...
>>> print(sum)
输出-30
>>> list(range(0,11,2))
[0, 2, 4, 6, 8, 10]
这些数字的总和永远不会是五。
我认为您希望您的代码成为:
if sum >= 5:
break
sum
在第二种情况下永远不会直接等于5。如果要在得到过去或等于 5时停止,则需要>=
。
您应将条件包括为sum>=5
。因此以下代码将有效]
sum=0
for z in range(0,11,2):
sum+=z
if sum>=5:
break
print(sum)
您的代码没有用,因为在第二种情况下,总和永远不等于5。它超过了5,但从未等于它。