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

Python猜数字游戏:chance变量累加+1失效问题求助

Python猜数字游戏:解决次数统计失效问题

你的代码里次数统计失效主要有两个核心问题:

  • 每次递归调用game()都会重新初始化chance = 0,之前的计数直接被清空;而且你在递归调用后才写chance +=1,这行代码根本不会执行,因为递归已经进入新的函数流程了。
  • chance = +1是赋值操作(把chance设为1),不是累加,正确的累加写法是chance +=1。

给你改成用循环实现的版本,更适合新手理解,也能正确统计次数:

import random

# 生成1-10的随机数
hidden = random.randint(1, 10)
print("Welcome to volty's number guessing game!")

chance = 0
while True:
    chance += 1
    try:
        user = int(input("choose a number from 1 to 10: "))
    except ValueError:
        print("请输入有效的数字!")
        continue
    
    if user > hidden:
        print("你的数字比隐藏数字大")
    elif user < hidden:
        print("你的数字比隐藏数字小")
    else:
        print("你猜对隐藏数字了!")
        print(f"隐藏数字是: {hidden}")
        print(f"你用了 {chance} 次猜中{'s' if chance > 1 else ''}")
        break

关键修改说明:

  • 用while True循环代替递归,避免每次重置计数变量
  • chance放在循环外,每次循环开始先累加1(因为每次输入就算一次尝试)
  • 加了输入验证,防止用户输入非数字导致报错
  • 修正了次数输出的逻辑,直接用chance就能正确显示尝试次数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:25:17