交互式游戏玩家分配程序问题求助:范围限制与变量错误
修复玩家分配功能的代码问题
原代码核心问题
- 玩家数量无范围校验:输入小于2或大于5时没有拦截,直接进入后续逻辑
- 变量错误:
- 尝试将未定义的
players添加到列表,实际应使用输入的姓名变量 - 打印时写错变量名
players_lists,正确应为players_list
- 尝试将未定义的
- 循环逻辑僵化:手动写死两次输入,无法根据设定的玩家数量动态生成输入提示
修正后的代码
# 初始化玩家列表 players_list = [] # 获取合法的玩家数量(限制在2-5人) while True: max_players_input = input("Hello how many players are in the game?\n") # 先校验输入是否为有效数字 if not max_players_input.isdigit(): print("请输入有效的数字") continue max_players = int(max_players_input) if 2 <= max_players <= 5: break print("insert number between 2 and 5") # 依次提示每位玩家输入姓名 for player_index in range(max_players): player_name = input(f"Player {player_index + 1}, Please insert your name\n") players_list.append(player_name) print(f"players so far : {players_list}")
代码改进说明
- 玩家数量校验:用
while True循环强制输入合法数值,不符合要求时重复提示,确保玩家数量在2-5之间 - 变量修正:使用
player_name存储输入的姓名,避免未定义变量错误,同时修正列表名称拼写问题 - 动态输入逻辑:用
for循环根据设定的玩家数量,依次提示对应序号的玩家输入,自动适配2-5人的不同场景 - 输出优化:每次添加玩家后实时显示当前已加入的所有玩家列表,符合交互式需求
内容的提问来源于stack exchange,提问作者cupcake3
相关产品推荐
相关产品推荐

