求解一个python的问题

a=1

for i in range(5):

if i%2==0:

break

a+=1

else:

a+=1

print(a)
为何跳出循环后a还是一?

1、range(5) 迭代结果是 0,1,2,3,4,所以循环开始i=0,0%2==0,循环这个时候已经break了。
2、for else 语句,for子句正常结束,else子句才会被执行,因为前面i=0for子句已经break中断了,所以else子句并没有执行。
因此 a = 1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-14
a = 1
for i in range(5):
if i % 2 ==0:

break
else:

a += 1
print(a)
因为你这个循环到第一步的时候就退出了,所以不会执行a+=1的操作a就还是等于原来的值(0 取模 2 = 0)你可以使用下面的代码查看结果
a = 1
for x in range(5):
print(x)
if x % 2 == 0:
break
else:
print('----------------')
a += 1
print(a)
print('-------------------')
print(a)
第2个回答  2020-12-14
break是结束循环,第一次循环i=0,0%2==0为真,遇到break直接结束循环,打印a
这里你应该用continue结束当前循环进行下一次循环。
第3个回答  2020-12-19
战斗还没有开始就已经结束了。
相似回答