我似乎无法弄清楚为什么这是python中的无限循环?
for i in range(n):
j=1
while((i*j)<n):
j+=1
外循环不应该走 n 次。每次递增 j 直到等于 n div i ?
我似乎无法弄清楚为什么这是python中的无限循环?
for i in range(n):
j=1
while((i*j)<n):
j+=1
外循环不应该走 n 次。每次递增 j 直到等于 n div i ?
i
开始于0
,因此while
条件始终为真;有关详细信息,请参阅范围文档。
您可以创建一个“跟踪”来显示变量的状态变化。
等等
print
您可以通过插入语句来证明您的跟踪是正确的。
如有疑问,请打印出来。
i
从零开始,因此内部循环的条件始终为0*j < n
,这将始终为真。
因为 的初始值为i
0。
第一个值i
将是 0。0 乘以任何值都是 0。
因为我是0!!并且 i*j=0
range(n)
开始于0
,不是1
。0 * j
将永远小于n
。
第一次通过外循环时,内循环变成无限循环。在那之后发生什么并不重要。没有“无限之后”。
i is 0 rewrite you loop like
for i in range(1,n):
j=1
while((i*j)<n):
j+=1
使用此版本的 range 函数将创建一个从 1 而不是 0 开始的范围