簡體   English   中英

七步猜數 Python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM