for循环的for n in range (2,2):的结果是什么
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 range(2,2),就只会生成一个空的可迭代对象,for循环就不会执行 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是一个素数,是吗? 本帖最后由 青出于蓝 于 2021-7-22 09:54 编辑
团团要加油鸭 发表于 2021-7-22 09:30
指的是 for x in range(2,n):
在第一次执行时会生成一个空的迭代对象,因此外边的for循环, ...
没错,会直接显示2是一个素数,中间的判断会直接跳过去.。
这个方法挺妙....之前没想到,以前我都是直接把2放进素数列表
学到了学到了 O(∩_∩)O哈哈~,互相进步 团团要加油鸭 发表于 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 是一个素数 Twilight6 发表于 2021-7-22 10:22
for n in range(2,10) 肯定会正常循环执行的,你可能想说的是 for x in range(2,2) 不会被执行
...
嗯嗯,你解释的更加清晰明了了,赞 我也想了好久,2%2 不是等于 0 吗,原来如此,,,,,点赞~
页:
[1]