You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:06:04