如何解决我如何在 python 循环中进行二进制选择
提醒一下我是初学者,所以答案可能很简单。
所以我正在尝试做一个猜数字游戏,你想出一个 1 到 100 之间的数字,然后计算机问你是不是它的 x 数字,你说它太高或太低
我遇到的问题是在你告诉它太高或太低之后它只是一遍又一遍地猜测 50 我已经用谷歌搜索了大约 2 个小时,但我不明白为什么要这样做
hi = 100
low = 1
mid = (hi+low)// 2
print ("Ok think of a number between 1 and 100.")
print ("I guess")
print (mid)
print ("1.) Too High")
print ("2.) Too Low")
g2 = input ("3.) Correct")
g2 = int(g2)
hi = int(100)
low = int(1)
mid = (hi+low)// 2
while g2 != 3:
if g2 == 1:
(hi) = (mid) - 1
print ("I guess")
print (mid)
print ("1.) Too High")
print ("2.) Too Low")
g2 = input ("3.) Correct")
g2 = int(g2)
elif g2 == 2:
(low) = (mid) + 1
print ("I guess")
print (mid)
print ("1.) Too High")
print ("2.) Too Low")
g2 = input ("3.) Correct")
g2 = int(g2)
解决方法
您没有在 mid
语句中更改 if
的值。
您正在更改 high
和 low
的值,但没有从中计算新的 mid
,因此它始终保持 50
。
您只需在 mid = (low + hi) // 2
语句中计算新的 high
或 low
后添加 if
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。