所以,我剛開始學習Python和思想簡單的考拉茲猜想計劃將是一個有趣的項目開始。這個想法是打印每一步,然後是所採取的總步驟。無限while循環Python,但只有1目標值
問題是,我不能阻止這個代碼進入一個無限循環,但只有當我使用「而X!= 1」。我可以用'while x!= 2'替換,然後按照預期在2停止。我很努力地理解這裏數字1的特別之處。
在此先感謝。這裏是到目前爲止的代碼:
x=int(input("Enter a number: "))
steps=int(0)
while x!=1:
if x%2==0:
x=int(x/2)
steps=(steps+1)
print(x)
if x%2!=0:
x=((x*3)+1)
steps=(steps+1)
print(x)
print("Steps:",steps)
你應該使用'else' - 想通過循環重複,如果'X == 2'在它開始流動。寫在紙上或使用例如http://www.pythontutor.com/如果你不能在頭腦中想象它。 – jonrsharpe
它不僅僅是1,嘗試用'x!= 3'代替它,你會發現同樣的行爲。它發生在你使用奇數時。 – Antimony
因爲當代碼擊中第二'if',第一個'if'已經改變x'的'的值,反之亦然。當'x'爲1時,'if's將其值更改爲4,2,1,循環繼續 – kuro