鱼C论坛

 找回密码
 立即注册
查看: 7039|回复: 7

[已解决]for循环的for n in range (2,2):的结果是什么

[复制链接]
发表于 2021-7-22 09:17:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
for循环中的
for x in range (2,2):的结果是什么?
> for n in range(2,10):
        for x in range(2,n):
                if n%x==0:
                        print(n,"=",x,"*",n//x)
                        break
        else:
                print(n,"是一个素数")

               
2 是一个素数
3 是一个素数
4 = 2 * 2
5 是一个素数
6 = 2 * 3
7 是一个素数
8 = 2 * 4
9 = 3 * 3
最佳答案
2021-7-22 10:22:31
团团要加油鸭 发表于 2021-7-22 09:30
指的是 for x in range(2,n):
           在第一次执行时会生成一个空的迭代对象,因此外边的for循环, ...



for n in range(2,10)就不会被执行


for n in range(2,10) 肯定会正常循环执行的,你可能想说的是 for x in range(2,2) 不会被执行

但是 for x in range(2,2) 会被执行,只是相当于一开始循环就结束了循环,而且循环属于正常停止

所以没有执行到 break ,那么也就会执行 第二个for 循环下的 else 代码块,打印出 2 是一个素数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-22 09:20:38 | 显示全部楼层
range(2,2),就只会生成一个空的可迭代对象,for循环就不会执行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-22 09:30:14 | 显示全部楼层
xiaosi4081 发表于 2021-7-22 09:20
range(2,2),就只会生成一个空的可迭代对象,for循环就不会执行

指的是 for x in range(2,n):
           在第一次执行时会生成一个空的迭代对象,因此外边的for循环,即
         for n in range(2,10)就不会被执行,也就是跑了一遍,最后执行了else语句,打印出了2是一个素数,是吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-22 09:52:58 | 显示全部楼层
本帖最后由 青出于蓝 于 2021-7-22 09:54 编辑
团团要加油鸭 发表于 2021-7-22 09:30
指的是 for x in range(2,n):
           在第一次执行时会生成一个空的迭代对象,因此外边的for循环, ...


没错,会直接显示2是一个素数,中间的判断会直接跳过去.。
这个方法挺妙....之前没想到,以前我都是直接把2放进素数列表
学到了学到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-22 10:19:37 | 显示全部楼层
O(∩_∩)O哈哈~,互相进步
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-22 10:22:31 | 显示全部楼层    本楼为最佳答案   
团团要加油鸭 发表于 2021-7-22 09:30
指的是 for x in range(2,n):
           在第一次执行时会生成一个空的迭代对象,因此外边的for循环, ...



for n in range(2,10)就不会被执行


for n in range(2,10) 肯定会正常循环执行的,你可能想说的是 for x in range(2,2) 不会被执行

但是 for x in range(2,2) 会被执行,只是相当于一开始循环就结束了循环,而且循环属于正常停止

所以没有执行到 break ,那么也就会执行 第二个for 循环下的 else 代码块,打印出 2 是一个素数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-22 10:38:53 | 显示全部楼层
Twilight6 发表于 2021-7-22 10:22
for n in range(2,10) 肯定会正常循环执行的,你可能想说的是 for x in range(2,2) 不会被执行
...

嗯嗯,你解释的更加清晰明了了,赞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-23 01:02:55 | 显示全部楼层
我也想了好久,2%2 不是等于 0 吗,原来如此,,,,,点赞~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 13:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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