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

实现幂运算的Python代码输入负数值时运行结果不符合预期,是什么原因?

代码问题原因
  • 核心逻辑错误出现在负数参数的计算分支:你期望计算10^n,但负数分支里额外加了一层倒数运算,导致最终结果是预期值的倒数。
  • 以输入n=-2为例,实际运行计算过程如下:
    1. 进入else分支时n=-2
    2. 先计算10**n即10**(-2),结果为0.01
    3. 再执行1 / 0.01得到100.0,和实际输出一致,刚好和预期的0.01相反。
修复方案

有两种等效的修改方式,都可以得到正确结果:

方案1:直接返回幂运算结果

Python原生支持负数指数的幂运算,不需要额外做倒数处理,直接统一返回10**n即可:

a = input("Enter the number to determine the exponent? ")

def expo(n):
    print(f'Value of n is {n}')
    if n >= 0:
        return 10**n
    else:
        print(f'In this loop')
        return 10**n
e = expo(int(a))
print(f'Value of exponent of {a} is {e}')

方案2:对负数取绝对值后做倒数

如果你需要保留倒数的计算逻辑,要对n取绝对值后再计算:

a = input("Enter the number to determine the exponent? ")

def expo(n):
    print(f'Value of n is {n}')
    if n >= 0:
        return 10**n
    else:
        print(f'In this loop')
        return 1/(10**abs(n))
e = expo(int(a))
print(f'Value of exponent of {a} is {e}')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:54:01