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

Python 3猜数字游戏判定异常:猜对答案仍提示错误

问题分析与解决方案

核心问题

你遇到的问题根源是类型不匹配:input()函数获取的用户输入默认是字符串类型,而num1是random.randint()生成的整数类型,两者直接用==比较永远不会相等,所以哪怕猜对数字,也会触发错误提示的代码块。

另外你的代码还有一个逻辑漏洞:不管用户输入的是不是START,程序都会直接进入猜数环节。

修正后的代码

import random

userstart = input("Please type START to play.")

if userstart.lower() == "start":
    print("Game starting, \n")
    
    num1 = random.randint(0, 10)
    # 测试时可以保留print(num1),正式玩建议注释掉
    # print(num1)
    usernum = input("Guess that number!")
    
    # 处理用户输入:转整数+捕获非数字异常
    try:
        usernum_int = int(usernum)
        if usernum_int == num1:
            print("Congrats you win!")
        else:
            print("WRONG\n")
            print("The number was: ", num1)
    except ValueError:
        print("请输入有效的数字!")
else:
    print("请输入START开始游戏。")

关键修正点

  • 用userstart.lower() == "start"简化大小写判断,无需重复写多个条件。
  • 将猜数逻辑缩进至if userstart代码块内,确保只有输入START才会启动游戏。
  • 通过int()将用户输入转为整数,让类型匹配后再进行比较。
  • 新增try-except捕获非数字输入的异常,避免程序因用户输入非数字而崩溃。
  • 改用if-else结构,保证只会执行“猜对”或“猜错”其中一个分支,逻辑更严谨。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 04:32:38