Python游戏代码y/n输入判定异常及大小写兼容问题求助
问题原因与解决方法
1. 非y/n输入后自动重启的问题
你当前代码中输入非y/n字符触发else分支打印提示后,既没有break也没有continue控制外层循环走向,代码会直接走完当前分支,回到外层游戏大循环的开头,重新要求输入初始石头数量,表现为自动重启游戏。
修复方案是增加一层子循环专门处理y/n输入校验,只有拿到合法输入后才进入后续逻辑,否则一直停留在重试输入阶段,将你原有play_again相关代码替换为如下逻辑即可:
# 输入校验子循环,仅当输入y/n时才跳出 while True: play_again = input('Would you like to play again?(y/n) ').lower() if play_again in ('y', 'n'): break print("I don't recognize that character, please select y or n") # 拿到合法输入后执行对应逻辑 if play_again == 'y': #loop restarts os.system('cls') # clear the console print('Starting another game...') continue elif play_again == 'n': #loop is exited print('Thank you for playing! You have now exited the game.') break
2. 大小写不区分识别y/n的实现
Python字符串内置的lower()方法可以将输入的所有大写字符转为小写,你完整代码中已经用到了input('Would you like to play again?(y/n) ').lower()写法,只要后续判断条件对应小写的'y'和'n',即可实现不区分大小写识别,用户输入Y/y/N/n都能正常匹配逻辑。
内容的提问来源于stack exchange,提问作者CWoolford
相关产品推荐
相关产品推荐

