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

Python猜数字游戏计分系统故障:答对仍扣分问题求助

问题分析与解决

核心问题

  1. 类型不匹配:input()获取的bet是字符串类型,而random.randint()生成的number是整数类型,两者永远无法相等,导致每次都会进入扣分的else分支。
  2. quit逻辑顺序错误:输入"quit"时,会先执行计分逻辑(扣分)再退出,不符合预期。

修正后的代码

import random

score = 0

def main():
    global score
    bet = input("Place Your Bet On A Number From 1-10 (quit to exit): ")
    
    # 先处理退出请求,避免不必要的计分
    if bet == "quit":
        exit()
    
    # 处理输入非数字的情况
    try:
        bet_num = int(bet)
        if not 1 <= bet_num <=10:
            print("请输入1-10之间的数字或quit退出")
            return
    except ValueError:
        print("请输入有效的数字或quit退出")
        return
    
    number = random.randint(1, 10)
    if bet_num == number:
        score += 1
        print(f"Correct!, 当前分数: {score}")
    else:
        score -= 1
        print(f"Incorrect!, 当前分数: {score}")
        print(f"你的猜测: {bet_num}")
        print(f"实际数字: {number}")
    print()

while True:
    main()

修改说明

  • 提前判断quit输入,避免执行计分逻辑
  • 增加输入验证:将输入转换为整数,并检查是否在1-10范围内,处理无效输入的情况
  • 修正类型匹配问题,用转换后的整数bet_num和number比较
  • 使用f-string优化输出格式,更清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:45:34