我正在努力学习Python。我刚刚制作了一个简单的摇滚,纸张,剪刀游戏。我遇到了一个小问题。
当每个玩家选择相同的项目时,游戏结束。
当玩家犯了错误并且必须再次选择时,该变量为空。请注意,播放器1说“无”。
这是方法。问题出现在else分支中。
def play1():
player1_choice = input("Player 1 - Go: ")
if (check(player1_choice)):
return player1_choice
else:
print(error_msg)
play1() # Something is wrong here.
我做错了什么?我该如何解决?感谢
答案 0 :(得分:2)
如果不需要,请不要使用递归。试试这个:
def play1():
while True:
player1_choice = input("Player 1 - Go: ")
if (check(player1_choice)):
return player1_choice
else:
print(error_msg)
答案 1 :(得分:0)
这是一个经典的 while 循环应用程序;你想循环,直到你得到一个合理的答案(虽然已知的答案是不可接受的),将该答案返回给调用程序。
当您在进入循环时知道时,使用 for 循环您需要重复多少次。
当你有一份工作时,递归是正确的:
在此应用程序中,从用户那里得到错误答案并不能使您比起始时更接近解决方案(有效答案)。现在的任务并不简单。进一步处理 是相同的,但你也可以通过迭代循环得到它。