[英]why is this an infinite loop in python?
我似乎無法弄清楚為什么這是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
,這將始終為true。
因為i
的初始值為0。
i
的第一個值將為0。0等於0。
因為我是0! 並且i * j = 0
range(n)
從0
開始,而不是1
。 0 * j
將始終小於n
。
第一次通過外循環,內循環變成無限循環。 在那之后發生什么都沒關系。 沒有“無限遠之后”。
我是0重寫你像循環
for i in range(1,n):
j=1
while((i*j)<n):
j+=1
使用此版本的range函數將創建一個從1而不是0開始的范圍
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.