python中的for循环搭配else

经常会看到for循环和else一起搭配的情形,这不是你的代码缩进不对,而是本身就有这种语法结构。

for i in range(100):
 	...
else:
	...
for i in range(n):
    if s.index(s[i])!=t.index(t[i]):
        return False
else:
    return True

计算100以内的素数之和:

sum=0
for n in range(2,100):
    for i in range(2,n):
        if n%i==0:
            break
    else:
        sum+=n
print(sum)

这种结构的执行机制是:for循环执行完成后去执行else语句。如果for循环遇到break,则直接跳出循环,不执行else语句。

for i in range(10):
    if(i==3):
        break
else:
    print "不执行else"

你可能感兴趣的:(python)