赞
踩
我当时在做求101~201中素数的时候自己写的代码是这样的:
- for a in range(101,201):
- for i in range(2, a):
- if a % i == 0:
- break
- else:
- print(a)
跑出来的结果就非常迷
全是同一个数迭代非常多遍
然后我去网上找到一段正确代码
- for a in range(101,201):
- for i in range(2, a):
- if a % i == 0:
- break
- else:
- print(a)
仔细看这两段代码,区别就是else是和if还是for对齐的
在此之前我都没有接触过for else
官网这样说的:
当迭代的对象迭代完并为空时,位于else的语句将会执行,而如果在for循环里有break时,则会直接终止循环,并不会执行else里的代码
在这里面,也就是说,a = 101时 i 迭代完了以后就能跳到else,但是像a = 102在 i = 2除尽了以后这个for循环就直接在 if 底下的break里面直接走了
慌,16号就要上机考试了,呜呜
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。