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

Python递归函数中全局计数器计数异常问题咨询

问题原因分析
  • 赋值逻辑错误:你代码里写的countcalls = +1等价于直接将countcalls赋值为1,不是累加计数,每次函数调用都会把变量重置为1,所以每次打印的结果都是1。正确的累加写法应该是countcalls += 1,等价于countcalls = countcalls + 1。
  • 打印语句位置错误:你把print(countcalls)放在了函数内部,每次递归调用都会触发一次打印,自然会连续输出11次数字。如果只需要打印最终总调用次数,需要把打印逻辑移到函数外部,等递归全部执行完成后再打印。
修正后的代码示例
countcalls = 0
def power(x, n):
    global countcalls
    countcalls += 1
    if n <= 0:
        return 1
    else:
        return x * power(x, n-1)

# 调用测试
res = power(2, 10)
print(countcalls)
print(res)
输出结果
11
1024

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:06:08