python - 如何修复循环以验证有效响应?
问题描述
当我运行此代码并输入无效响应时,通过要求我输入有效响应,它可以正常工作。
但是当我输入一个无效响应并且它要求我再次输入并且我输入一个有效响应时,它不会中断循环。
我该如何解决?
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: ")
解决方案
它不会跳出循环,因为您永远不会更改 的值plchoice
,而是在循环中设置 的值choice
。
此外,使用全局变量不是 pythonic。考虑让game_over()
函数有参数(plchoice,cpchoice)
。
如果您编辑 plchoice 和 cpchoice 函数以返回它们的值而不是设置全局值,则可以将game_going()
函数更改为:
def game_going():
game_over(plchoice(),cpchoice())
推荐阅读
- javascript - 无法在 MERN 项目中将 mongodb atlas 与 nodejs 连接
- css - 如何在使它们成为 flex-end 的同时证明内容中心的合理性?
- javascript - 出现错误但console.log仍在工作
- itext7 - iText7 - 在原始内容下写入时如何忽略页面旋转
- javascript - 我需要 selenium 来检查一个框,但我不能检查它
- c++ - 好友功能无法访问私人会员
- css - 如何在material-ui表格分页中改变样式
- javascript - 选择不工作的反应下拉默认值
- c++ - 在 C++ 中创建动态内核调度程序
- python - IndentationError: 意外缩进 Python timeit() 方法