这三种语句都是差不多的。都是前面的内容是正常执行完成的就会执行else语句,如果是非正常,比如:
执行失败,或者break跳出,那么都是不会执行else语句的!
1.for … else
如果for循环是正常执行完的话都会执行else
如果for循环是通过break跳出的 那后面的else就不会执行了
while … else 也是一样。
alist=[]for i in range(100):if i<2:continuefor j in range(2,i):if i%j==0:breakelse:alist.append(i)print(alist)alist=[] for i in range(100): if i<2: continue for j in range(2,i): if i%j==0: break else: alist.append(i) print(alist)alist=[] for i in range(100): if i<2: continue for j in range(2,i): if i%j==0: break else: alist.append(i) print(alist)
输出结果:
![图片[1] - for else语法、try ….except….else语法 和 while….else语法 - 正则时光](https://www.regular.cc/wp-content/uploads/2023/11/2022091302441982-1024x112.png)
刚看到这个代码我比较迷得就是为什么2,3还能输出,可以这样理解range()函数左闭右开,左边能取到2,右边取不到2,只有一次循环判断就一次然后结束,是正常结束循环,不是从break中跳出,”3“也是同样道理。
2.try ….except….else
![图片[2] - for else语法、try ….except….else语法 和 while….else语法 - 正则时光](https://www.regular.cc/wp-content/uploads/2023/11/2022092213205474.png)
3.while….else
count = 0while count <= 5 :count += 1print("Loop",count)else:print("循环正常执行完啦")print("-----out of while loop ------")count = 0 while count <= 5 : count += 1 print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------")count = 0 while count <= 5 : count += 1 print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------")
Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦
—–out of while loop ——
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END