关于求100-200素数的求助
本帖最后由 不分南北东西 于 2020-12-24 21:48 编辑各位大神好:
我是python小白,在做100-200的素数问题的时候,有些问题不太理解,请求帮助{:5_92:}
标准代码如下:
for i in range(100,200):
for j in range(2,i):
if i%j==0:break
else:
print(i)
我的代码:
for i in range(100,200):
for j in range(2,i):
if i%j==0:
break
else:
print(i)
我的问题如下:
1.在标准代码里为什么break可以放在if语句后面;
2.在标准代码里为什么else可以不跟if组合使用;
3.标准代码里的else为什么可以单独使用?这是else的什么语法?
4.为什么我的代码虽然可以找到素数,但是每个素数都打印99遍?
for i in range(100,200):
for j in range(2,i):
if i%j==0:
break #如果这里被执行到,就表明是一个合数,那么下面的else 就没有机会执行
else:
print(i,end="") #如果上面的break 没有机会执行,就表明是一个素数,就要跑这个语句的
# for .......else........这个python下的特殊语法,就是去循环里面找人,找到了直接中断
# 找不到,好的,为了礼貌,找不到 要通知别人一声
'''
D:\wp>py wp\app3.py
101103107109113127131137139149151157163167173179181191193197199
''' 看缩进,那个else是和for配对的
那个break放在if后就是一种简写,没什么的 else不是单独使用,只是为了脱离for j 的循环,如果像你那么写的话就会一个数字打印很多遍,每次j循环一次就会打印一遍
页:
[1]