python:为什么else与if不在同一列,也能输出结果?

第一段代码:

count=0
for i in range(101,201):
    for k in range(2,i):
        if i%k==0:
            break
        else:
            count+=1
            print(i,"是素数")
print("101-200之间有%d个素数"%count)

第一段的结果:

img

第二段代码:

count=0
for i in range(101,201):
    for k in range(2,i):
        if i%k==0:
            break
    else:
            count+=1
            print(i,"是素数")
print("101-200之间有%d个素数"%count)

第二段结果:

img

for ..else...语句是python的中的一种用法,在while或者for循环之后还可以有else子句,作用是for循环中没有被break、return 等终止,则最后就执行else语句。
详细可参考:


如对你有帮助,请点击采纳。

你这个代码,本来就只需要if,不需要else。所以你第一段代码运行结果都是错误的。