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

如何让两个Python函数共享计数变量?猜数字游戏问题求助

解决猜数字游戏的计数共享问题

你的核心问题是计数变量count被局限在函数内部,无法跨函数、跨异常分支共享,同时原代码的输入处理逻辑拆分不合理,导致计数重置或无法传递。下面是修复后的完整代码,同时梳理了逻辑:

print("Guess the secret number! Hint: it's an integer between 1 and 100...")
secret_num = 26
count = 0

def get_valid_guess():
    """获取合法的整数猜测值,处理非整数输入"""
    while True:
        try:
            return int(input("What is your guess? "))
        except ValueError:
            print("Bad input! Try again: ")

# 主游戏逻辑
while True:
    guess = get_valid_guess()
    count += 1
    if guess == secret_num:
        print(f"You guessed it! It took you {count} guesses.")
        break
    elif guess > secret_num:
        print("Too high!")
    else:
        print("Too low!")

关键改进点:

  • 把count放在全局作用域(主逻辑)统一维护,避免函数间传递的麻烦
  • 单独用get_valid_guess函数处理输入合法性,不用拆分两个游戏逻辑函数,简化结构
  • 每次成功获取合法猜测后就累加计数,不管猜的对不对,确保计数准确
  • 主循环统一处理猜数字的判断逻辑,避免重复代码

原代码的问题拆解:

  1. 初始guess = int(input(...))会直接抛出异常,没机会进入int_guess函数,导致except分支里的count根本未定义
  2. int_guess里的count是局部变量,not_int_guess无法访问;就算传递参数,两个函数的计数也是各自独立的,无法累加
  3. not_int_guess内部没有正确累加计数,逻辑和int_guess重复,易出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:25:40