Python 猜谜游戏

发布于 2022-07-28 23:05:16

是初学者。

这是我的猜谜游戏简单版本的代码。我知道它可以以更有效的方式编写,但请帮助并让我知道为什么我写的内容不起作用。无论我输入什么字母h, 或l,它都会不断循环我选择的第一个字母。

high = 100
low = 0
guess = ((low + high) / 2)

print("Please think of a number between" + str(high) + " and " + str(low))

answer = input("Is your secret number " + str(guess) + "?\n"
                                                       "Enter 'h' to indicate the guess is "
                                                       "too high. Enter 'l' to indicate the guess "
                                                       "is too low. Enter 'c' to indicate I "
                                                       "guessed correctly.")

while guess != 0:
    if answer == "h":
        high = guess
        guess = ((low + high) / 2)
        input("Is your secret number " + str(guess) + "?\n"
                                                  "Enter 'h' to indicate the guess is "
                                                  "too high. Enter 'l' to indicate the guess "
                                                  "is too low. Enter 'c' to indicate I "
                                                  "guessed correctly.")
    elif answer == "l":
        low = guess
        guess = ((low + high) / 2)
        input("Is your secret number " + str(guess) + "?\n"
                                                  "Enter 'h' to indicate the guess is "
                                                  "too high. Enter 'l' to indicate the guess "
                                                  "is too low. Enter 'c' to indicate I "
                                                  "guessed correctly.")
    elif answer == "c":
        print("Game over. Your secret number was " + str(guess))
        break
    else:
        print("Sorry, I did not understand your input."
              "Is your secret number " + str(guess) + "?\n"
                                                      "Enter 'h' to indicate the guess is "
                                                      "too high. Enter 'l' to indicate the guess "
                                                      "is too low. Enter 'c' to indicate I "
                                                      "guessed correctly.")
关注者
0
被浏览
36
1 个回答
  • 面试哥
    面试哥 2022-07-28
    为面试而生,有面试问题,就找面试哥。

    您需要将该行answer = input("Is your secret number ...")放在 while 循环中,以便每次程序都获得一个新的输入。这将是:

    ...
    while guess != 0:
        answer = input("Is your secret number ...")
        if answer == 'h':
            ...
    

    我还建议您使用 f-strings 打印出数字,而不是:

    print("Please think of a number between" + str(high) + " and " + str(low))
    

    你可以写:

    print(f"Please think of a number between {high} and {low}")
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看