关于range()函数用法求助
# 10以内素数for j in range(2, 10):
for i in range(2, j):
if j % i == 0:
print(j, '=', i, '*', j // i)
break
else:
print(j, '是一个素数')
第一个问题: 第一个for 第一次循环 j 得到的值是2 那么接下来循环第二个for i 得到的值是2
再进入分支语句 if 中时 j % i 的值是0,为啥显示2=2*1,而显示2是素数。
第二个问题 :进入第二遍循环的时候 j 得到的值是3 那么 此时 i 得到的值是不是也是3呀(不是右边取不到吗)
第三个问题:第一个for循环是把2到10(含2不含10)之间数取完再去执行第二个for循环?
j=2时不进去内循环 第一个问题:for是先比较,再进入循环体,第一次循环 j 得到的值是2 那么接下来循环第二个for i 得到的值是2,条件是for i in range(2,2) ,条件为fales不进入循环体,直接else: print(j, '是一个素数')
第二个问题 :进入第二遍循环的时候 j 得到的值是3 那么 此时 i 得到的值是2
第三个问题:是内层i循环2到 j循环完之后,j加一继续循环2到j,直到J到10
wp231957 发表于 2023-2-27 07:33
j=2时不进去内循环
好勒,感谢老哥帮助 未泯 发表于 2023-2-27 09:18
第一个问题:for是先比较,再进入循环体,第一次循环 j 得到的值是2 那么接下来循环第二个for i 得到的值是 ...
就是说内外循环是一层一层递进的,好的,感谢老哥帮助 未泯 发表于 2023-2-27 09:18
第一个问题:for是先比较,再进入循环体,第一次循环 j 得到的值是2 那么接下来循环第二个for i 得到的值是 ...
你说的“for是先比较,再进入循环体”是不对的,for 循环没有比较,它的本质是先通过 iter 获得迭代器对象,
然后通过 next 迭代出元素 isdkz 发表于 2023-2-27 13:27
你说的“for是先比较,再进入循环体”是不对的,for 循环没有比较,它的本质是先通过 iter 获得迭代器对 ...
那你这么说next方法中抛出 的StopIteration 异常用啥方式判断出用于结束 迭代器循环的。 未泯 发表于 2023-2-27 13:59
那你这么说next方法中抛出 的StopIteration 异常用啥方式判断出用于结束 迭代器循环的。
当然是 for 循环内部自动处理了呀,它遇到 StopIteration 就结束循环,而不是将其抛出,
你想知道 for 循环是怎么处理 StopIeration 的就得看 python 的源代码了,这不是就学习语言本身需要关心的事情,
但是 python 的 for 循环的本质还是得有所了解的,你在网上也能搜得到 isdkz 发表于 2023-2-27 14:06
当然是 for 循环内部自动处理了呀,它遇到 StopIteration 就结束循环,而不是将其抛出,
你想知道 f ...
内部比较了 未泯 发表于 2023-2-27 14:46
内部比较了
{:5_90:}都说没有比较了,你咋就这么轴呢 isdkz 发表于 2023-2-27 14:47
都说没有比较了,你咋就这么轴呢
你信我 未泯 发表于 2023-2-27 15:04
你信我
你能找到网上有相关的资料来证明我就信你 一样的疑问,感谢
页:
[1]