鱼C论坛

 找回密码
 立即注册
查看: 2126|回复: 3

[已解决]关于求100-200素数的求助

[复制链接]
发表于 2020-12-24 21:44:28 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 不分南北东西 于 2020-12-24 21:48 编辑

各位大神好:

我是python小白,在做100-200的素数问题的时候,有些问题不太理解,请求帮助

标准代码如下:

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遍?
最佳答案
2020-12-24 21:44:29
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
101  103  107  109  113  127  131  137  139  149  151  157  163  167  173  179  181  191  193  197  199
'''
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-24 21:44:29 | 显示全部楼层    本楼为最佳答案   
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
101  103  107  109  113  127  131  137  139  149  151  157  163  167  173  179  181  191  193  197  199
'''
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-24 21:53:35 From FishC Mobile | 显示全部楼层
看缩进,那个else是和for配对的
那个break放在if后就是一种简写,没什么的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-25 10:00:25 | 显示全部楼层
else不是单独使用,只是为了脱离for j 的循环,如果像你那么写的话就会一个数字打印很多遍,每次j循环一次就会打印一遍
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 17:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表