簡體   English   中英

Python 重新啟動循環

[英]Python Restarting a loop

我如何在以下代碼中重新啟動循環,因為它在 3N+1 中達到 1,因為它在 1>4>2>1 中變為 1?

代碼:

import math
import random
num = 1
NumTF = False
play = True
while play:
  if num % 2 == 0:
    num = num / 2
  else:
    num = 3 * num + 1
print(num)
if num == 1:
  play = False
if play == False:
  num += 1 and play == True

我假設你想結束循環,因為......科拉茨猜想。

您所要做的就是將這個簡單的 if 語句添加到末尾:

elif num == 1:
    play = False

if num%2 == 0語句之后,所以 while 循環結束。 目前,您在執行num = 3*num+1之后執行此操作,這使其變為 4,因此這種情況永遠不會發生。 正如 rv.kvetch 提到的, play==True做了意想不到的事情,所以只需刪除print(num)之后的所有內容,因為這些都是不必要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM