Python游戏选择代码重复输出问题:如何让匹配结果仅打印一次
问题原因
你代码出现重复打印的核心原因是:你把游戏匹配的判断逻辑写在了遍历gamesAvailable列表的for循环内部。该列表共有10个元素,循环默认会执行10次,只要你输入的是判断逻辑中包含的两个游戏之一,每次循环都会触发一次打印操作,最终就会出现多次重复的输出结果。
另外你当前的判断逻辑是硬编码对应列表索引的,后续新增游戏时还要手动新增判断分支,维护成本很高,也容易出错。
解决方案
方案1:删除冗余循环,直接做匹配判断(最推荐)
你的匹配逻辑完全不需要遍历列表即可实现,代码更简洁高效:
# 可用游戏列表 gamesAvailable = ["Minecraft", "League of Legends", "Valorant", "Wild Rift", "Mobile Legends", "Call of Duty", "Pokémon", "Esports King", "Sims", "Mir4"] print(gamesAvailable, end = ", ") # 输入选择的游戏 gameSelection = input("\n选择你要的游戏:") # 直接判断输入是否在可用列表中 if gameSelection in gamesAvailable: print("你已选择:", gameSelection) else: print("你选择的游戏不在可用列表中")
方案2:保留循环的前提下,匹配成功后终止循环
如果后续业务需要保留遍历列表的逻辑,只需要在匹配成功打印后加break语句跳出循环即可:
# 可用游戏列表 gamesAvailable = ["Minecraft", "League of Legends", "Valorant", "Wild Rift", "Mobile Legends", "Call of Duty", "Pokémon", "Esports King", "Sims", "Mir4"] print(gamesAvailable, end = ", ") # 输入选择的游戏 gameSelection = input("\n选择你要的游戏:") # 遍历匹配 for game in gamesAvailable: if gameSelection == game: print("你已选择:", gameSelection) # 匹配成功直接跳出循环,不会继续执行后续迭代 break else: # 循环正常结束未触发break,说明无匹配项 print("你选择的游戏不在可用列表中")
内容的提问来源于stack exchange,提问作者Rednuht
相关产品推荐
相关产品推荐

