游戏开发技术求助:实现玩家名称确认循环输入功能
搞定玩家名称确认的循环输入功能
嘿,我来帮你解决这个玩家名字确认的循环问题!先看看你现有代码里的两个小问题:
- 条件判断
if name == 'yes' or 'Yes':写法不对,这种逻辑会永远为真,因为'Yes'本身是布尔真,不管用户输入啥都会执行确认后的代码 - 没有循环结构,所以没法让用户重新输入名字
下面是修改后的完整代码,完美实现你要的功能:
input("Disclaimer: To be able to continue through text press Enter") # 用无限循环来实现重复请求输入,直到玩家确认名字 while True: player_name = input("What's your name? ") # 把用户输入转成小写,这样不管输入Yes/YEs/YES都能匹配 confirm = input(f'Do you want to keep the name {player_name}? (No or Yes?)').lower() if confirm == 'yes': print(f'Ok then {player_name}, Enjoy the game!!!') break # 确认成功,跳出循环 else: print("Got it, let's try again!") # 提示重新输入 # 循环结束后,进入游戏后续流程 input(f'Welcome {player_name}...')
代码说明:
while True:创建一个无限循环,直到我们用break主动跳出confirm.lower():把用户的确认输入统一转成小写,避免大小写敏感的问题,用户输入任何形式的"yes"都能被识别break:当玩家确认名字后,跳出循环,继续执行后续的游戏欢迎逻辑- 若玩家输入"no"或者其他内容,循环会重新执行,让玩家再次输入名字
这样就能实现你要的:玩家输入名字后,若不确认就重新请求输入,直到确认为止啦!
内容的提问来源于stack exchange,提问作者Z_ darknight
相关产品推荐
相关产品推荐

