Hangman程序:循环验证

2024-03-28 16:48:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python编写一个hangman游戏程序,遇到了一个关于验证循环的问题。以下是问题类型的示例:

    def loopGet():
        condition = True
        while condition == True:
            userInput = raw_input("Enter a string: ")
            # assigns boolean value to condition
            condition = ifWon()
            # returns condition
            return condition
            #assigns boolean value
            condition = ifLost()
            #return condition
            return condition

假设已经创建了ifWon()和ifLost(),这是一个示例,说明了发生了什么,以及我正在尝试弄清楚什么。在我的程序中,即使两者都返回True,循环也会结束。如果一个返回True,另一个返回False,它仍然结束。我的印象是,如果“条件”返回True,循环应该继续运行;是吗?你知道吗


Tags: 程序true游戏示例类型returnvaluedef
2条回答

循环“结束”,因为方法的执行在return语句处停止。由于您的return语句在while循环中,因此您的条件似乎不起作用。你知道吗

一旦将return语句移到循环之外,就会得到预期的结果。你知道吗


def game():

    isWinner = False
    while isWinner == False:
       # as the user for a guess
       # check the guess
       isWinner = isWon()
    return "You won!"

将变量设置为要更改的条件。所以isWinner = False,然后while isWinner == False:做你的循环。如果isWon()返回TrueFalse,那么在while中isWinner = isWon()。您不需要isLost(),因为我们希望在用户获胜时退出循环。你知道吗

所以基本上你想循环直到ifWon()或ifLost()为真。你知道吗

在原始代码中,当您在“if”之外“return condition”时,您将立即离开循环。事实上,您永远不会到达ifLost(),因为在此之前,您只能在队列中退出。你知道吗

我认为你根本不需要“条件”。。。循环直到得到一个真值,然后返回。注意返回值是如何在if中的,因此只有在True时才返回。你知道吗

  def loopGet():
    while True:
        userInput = raw_input("Enter a string: ")
        # do something with input
        if ifWon():
            return 'Won'
        if ifLost()
            return 'Lost'

有些人可能会反对嵌套返回,但这是一种非常简单的方法。你知道吗

相关问题 更多 >