[英]Number Guessing in 7 Steps Python
我想編寫一個 python 游戲,它最多可以通過 7 個步驟知道從用戶那里獲取的數字(1-100)。 2^7>100。 下面的代碼正在運行,但它需要超過 7 個步驟。 我認為問題在於guess=guess+-guess//(2^n) 部分。 但我不知道用什么代替。
number=int(input("Enter a number between 1 and 100: "))
guess=50
n=1
if number>100:
number=int(input("Enter a number less than 100: "))
if number<1:
number=int(input("Enter a number greater than 1: "))
while True:
print("Your number is" +' '+ str(guess) +' '+ "?")
ans=str(input("(g)reater,(l)ess or (b)ravo: "))
for n in range(1,10,1):
if ans=="g":
guess=guess+guess//(2^n)
elif ans=="l":
guess=guess-guess//(2^n)
elif ans=="b":
print("Your number is " +' '+ str(guess) +' '+ "Well done for me")
break
您需要跟蹤可能的最低和最高數字,然后猜測它們之間的中間值。 根據回復更新最低和最高數字。
number=int(input("Enter a number between 1 and 100: "))
guess = 50
n = 1
if number>100:
number=int(input("Enter a number less than 100: "))
if number<1:
number=int(input("Enter a number greater than 1: "))
lo = 1
hi = 100
while True:
print("Your number is" +' '+ str(guess) +' '+ "?")
ans = str(input("(g)reater,(l)ess or (b)ravo: "))
if ans == "g":
lo = guess
guess=lo + (hi-lo+1)//2
elif ans == "l":
hi = guess
guess=lo + (hi-lo)//2
elif ans == "b":
print("Your number is " +' '+ str(guess) +' '+ "Well done for me")
break
n += 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.