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

为何Python自定义exp函数仅返回平方值而非幂运算结果?

问题分析与修复

核心问题

你的代码存在三个关键错误:

  1. 未累积计算结果:循环里每次都用原始的num做乘法(num1=num*num),相当于反复计算原数的平方,没有把每次的乘积结果叠加累积。比如传入2和5时,循环5次每次都是2*2,最终结果始终是4。
  2. 未初始化累积变量:num1没有在循环外设置初始值,逻辑上缺少承载乘积的起始基准。
  3. 函数无返回值:函数仅打印结果,未用return返回计算值,所以最后print(exp(2,5))会额外输出None(Python函数默认返回值)。

修复后的代码

def exp(num, pow):
    result = 1  # 初始化累积变量为1,保证任何数乘1不改变结果
    for i in range(pow):  # range(pow)等价于range(0,pow,1),写法更简洁
        result *= num  # 每次将结果与num相乘,实现累积幂运算
    return result  # 返回计算结果

print(exp(2, 5))  # 输出32

额外说明

  • 上述代码天然支持pow=0的场景,符合数学定义(任何数的0次方为1,循环0次直接返回初始值1)。
  • 也可以将result初始化为num,再循环pow-1次,但初始化为1的逻辑适用性更广。

内容的提问来源于stack exchange,提问作者crimson-wind

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:40:28