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