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

猜元素游戏不符合预期:if-else语句无法正常运行

猜元素游戏代码修复

你的代码主要有两个问题导致if-else无法正常工作:

问题1:缩进错误

原代码里的if-else块没有缩进在while循环内部,导致循环只会反复让你输入,完全不处理判断逻辑,等三次输入完了才会执行一次判断,这显然不符合游戏逻辑。

问题2:比较逻辑错误

用户输入的是A-G的字母,但你直接拿输入的字母和secret_element("Oxygen")对比,比如输入G,代码会判断"G" != "Oxygen",肯定会触发错误分支,正确的做法是用输入的字母去字典element里取出对应的元素名,再和目标值比较。

修复后的完整代码

secret_element = "Oxygen"
guess = ""
amount = 3
element = {
     "A" : "Nitrogen",
     "B" : "Krypton",
     "C" : "Xenon",
     "D" : "Helium",
     "E" : "fluorine",
     "F" : "Lithium",
     "G" : "Oxygen"
}
b = 0
while b < 3:
    print("Insert alphabet A, B, C, D, E, F or G to find the element")
    guess = input("All you need is luck\n").strip().upper()  # 统一转大写,避免大小写输入问题
    
    # 先判断输入是否在字典的键里
    if guess not in element:
        print("请输入A-G之间的字母!")
        continue
    
    # 从字典中取出对应的元素名
    guessed_element = element[guess]
    
    if guessed_element != secret_element:
        b += 1
        amount -= 1
        print(f"{amount} 次机会剩余\neLPOZO")
        # 如果用完所有机会,提示失败
        if b == 3:
            print(f"游戏结束,正确元素是 {secret_element}")
    else:
        print(f"恭喜你答对了!正确元素是 {secret_element}!")
        break  # 答对后直接退出循环

额外优化点

  • 加入了输入验证,防止用户输入非A-G的内容
  • 把输入转成大写,避免用户输入小写字母(比如g)导致匹配失败
  • 答对后直接break退出循环,不用继续输入
  • 用完所有机会后提示正确答案

内容的提问来源于stack exchange,提问作者Aesthetic Vibes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:45:50