0
我試圖編寫一個代碼來搜索數字範圍,並計算出用戶輸入的數字是否在範圍內。我正在使用二進制搜索來執行此操作。變量賦值工作不正常
這裏是我寫的東西:
initial = 0
final = 10000
guess = (initial + final)//2
num = int(input("Enter Number"))
while True:
if guess == num:
print(guess, "is in our list. Congratulation!")
break
elif guess > num:
final = guess
else:
initial = guess
上述程序運行無限,作爲變量的猜測不求值最終或初始的第一次迭代後的新價值。
我試着調整沒有變量的代碼,如下圖所示,它工作。
initial = 0
final = 1000
guess = (initial + final)//2
num = int(input("Enter Number"))
while True:
if (initial + final)//2 == num:
print((initial + final)//2, "is in our list. Congratulation!")
break
elif (initial + final)//2 > num:
final = (initial + final)//2
else:
initial = (initial + final)//2
我不明白爲什麼變量猜測沒有改變。
我以爲我理解變量賦值直到出現這個問題。
您需要更新循環中的'guess'變量*。變量不是'活的',* result *被賦值,而不是表達式。 –
好的,謝謝。這是有道理的 – Tpenny