我正在用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,循环应该继续运行;是吗?你知道吗
循环“结束”,因为方法的执行在
return
语句处停止。由于您的return
语句在while循环中,因此您的条件似乎不起作用。你知道吗一旦将
return
语句移到循环之外,就会得到预期的结果。你知道吗将变量设置为要更改的条件。所以
isWinner = False
,然后while isWinner == False:
做你的循环。如果isWon()
返回True
或False
,那么在while中isWinner = isWon()
。您不需要isLost()
,因为我们希望在用户获胜时退出循环。你知道吗所以基本上你想循环直到ifWon()或ifLost()为真。你知道吗
在原始代码中,当您在“if”之外“return condition”时,您将立即离开循环。事实上,您永远不会到达ifLost(),因为在此之前,您只能在队列中退出。你知道吗
我认为你根本不需要“条件”。。。循环直到得到一个真值,然后返回。注意返回值是如何在if中的,因此只有在True时才返回。你知道吗
有些人可能会反对嵌套返回,但这是一种非常简单的方法。你知道吗
相关问题 更多 >
编程相关推荐