首页 > 解决方案 > 如何修复循环以验证有效响应?

问题描述

当我运行此代码并输入无效响应时,通过要求我输入有效响应,它可以正常工作。

但是当我输入一个无效响应并且它要求我再次输入并且我输入一个有效响应时,它不会中断循环。

我该如何解决?

def plchoice():
    global choice
    global plchoice
    plchoice = input("Rock, Paper, Or Scissors: ")
    while plchoice not in ["rock", "Rock", "Paper", "paper", "Scissors", "scissors"]:
        print("Invalid Choice! Pick Again.")
        choice = input("Rock, Paper, Or Scissors: ")

标签: python

解决方案


它不会跳出循环,因为您永远不会更改 的值plchoice,而是在循环中设置 的值choice

此外,使用全局变量不是 pythonic。考虑让game_over()函数有参数(plchoice,cpchoice)

如果您编辑 plchoice 和 cpchoice 函数以返回它们的值而不是设置全局值,则可以将game_going()函数更改为:

def game_going():
    game_over(plchoice(),cpchoice())

推荐阅读