用python编写了一个非常简单的猜字游戏,每次猜错的时候都会得到提示,但不起作用

用python编写了一个非常简单的猜字游戏,每次猜错的时候都会得到提示,但不起作用,python,loops,Python,Loops,唯一的问题是,当你正确地猜出单词时,循环会继续进行,并且不会识别出猜测=秘密的单词。因此,没有办法真正赢得游戏,所有用户都注定要失败。我想这可能是用户如何将信息输入guesses变量的问题,因此guesses变量无法与机密字进行比较,但它似乎写得很好,所以idk。您的代码工作正常。然而,编程的原则之一是——不要重复你自己 不要像以前那样编写代码,尽量避免重复。这使您的代码易于阅读、理解和调试 您可以使用列表存储要在每个回合打印的消息 secret_word = "Banana"

唯一的问题是,当你正确地猜出单词时,循环会继续进行,并且不会识别出猜测=秘密的单词。因此,没有办法真正赢得游戏,所有用户都注定要失败。我想这可能是用户如何将信息输入guesses变量的问题,因此guesses变量无法与机密字进行比较,但它似乎写得很好,所以idk。

您的代码工作正常。然而,编程的原则之一是——不要重复你自己

不要像以前那样编写代码,尽量避免重复。这使您的代码易于阅读、理解和调试

您可以使用列表存储要在每个回合打印的消息

secret_word = "Banana"
guesses = ""
maximum_guesses = 5
number_of_guesses = 0
out_of_guesses = False
while guesses != secret_word and not out_of_guesses:
    if number_of_guesses == 0:
        guesses = input("Guess a word: ")
        number_of_guesses += 1
    elif number_of_guesses == 1:
        print("The object is edible")
        guesses = input("Guess again: ")
        number_of_guesses += 1
    elif number_of_guesses == 2:
        print("The object is yellow: ")
        guesses = input("Guess again: ")
        number_of_guesses += 1
    elif number_of_guesses == 3:
        print("The object is a fruit:  ")
        guesses = input("Guess again: ")
        number_of_guesses += 1
    elif number_of_guesses == 4:
        print("You're stupid ")
        guesses = input("Guess again: ")
        number_of_guesses += 1
    else:
        out_of_guesses == True

if out_of_guesses == True:
    print("You have lost")
else:
    print("you have won")
然后,您所需要做的就是使用号码来访问列表中的消息。您还可以使用for循环来跟踪循环是已中断还是已成功结束。 此外,您可能希望比较单词的小写版本,以便您的程序不会认为“banana”和“banana”是不同的单词

secret_word = "banana"
hints = ["", "The object is edible", "The object is yellow", "The object is a fruit", "You're stupid"]
maximum_guesses = len(hints)

看到了吗?可读性更强,因此很容易判断是否有错误

对我有用。你确定你猜的是“香蕉”而不是“香蕉”或其他什么吗?我本可以要求的最好的反馈,现在我意识到我的干编码,并且已经在考虑其他项目了。非常感谢。
for guess_num in range(maximum_guesses):
    if guess_num == 0:
        guess = input("Guess a word: ")
    else: # Print the hint and guess again for turn 2 onwards
        print(hints[guess_num])
        guess = input("Guess again: ")

    if guess.lower() == secret_word: # If correctly guessed, say so and break the loop
        print("You have won")
        break
else: # Loop wasn't broken, player lost
    print("You have lost")