生存不易 发表于 2020-7-10 20:11:43

幂运算

def power(x,y):
    result = 1
    for result in range(y+1):
      result *= x
    return result

print(power(2,3))问:为什么1、power(2,3)结果是6 不是4
                2、 power(2,4)结果是8



Twilight6 发表于 2020-7-10 20:13:03



为什么1、power(2,3)结果是6 不是4
                2、 power(2,4)结果是8

这你都错了吧... 2 的 三次方是等于 8

2 的四次方等于 16


qiuyouzhi 发表于 2020-7-10 20:15:08

小学数学运算都不会的吗..

Hello. 发表于 2020-7-10 20:15:27

这是你运行出来的结果?{:10_277:}

永恒的蓝色梦想 发表于 2020-7-10 20:15:49

1.变量重名。
2.多一次循环。

代码:def power(x,y):
    result = 1
    for _ in range(y):
      result *= x
    return result

生存不易 发表于 2020-7-10 20:16:03

Twilight6 发表于 2020-7-10 20:13
这你都错了吧... 2 的 三次方是等于 8

2 的四次方等于 16

result = 1,
第一次执行后result = 2,还属于range(4)
第二次执行后,result = 4,不属于range(4)
所以应该返回4啊

liuzhengyuan 发表于 2020-7-10 20:16:15

你的 for 循环
result in range(y+1)这句话,说明 result 每次循环会被重新赋值为 range() 中的数
也就是说 循环中 result 赋值就被覆盖了
建议建一个新的变量来存放总和

Twilight6 发表于 2020-7-10 20:18:57

本帖最后由 Twilight6 于 2020-7-10 20:20 编辑

生存不易 发表于 2020-7-10 20:16
result = 1,
第一次执行后result = 2,还属于range(4)
第二次执行后,result = 4,不属于range(4)


我的意思是 你说的结果错了

为什么1、power(2,3)结果是6 不是4

你应该问为什么不是 8 , 而你说了为什么不是 4 ... 就算是 4 也是错的啊

乘号 发表于 2020-7-10 20:39:23

小学没学好?

生存不易 发表于 2020-7-10 20:59:49

永恒的蓝色梦想 发表于 2020-7-10 20:15
1.变量重名。
2.多一次循环。



power(2,y)
当y=1~5,
结果分别是2,4,6,8,10
可以解释一下清楚一点吗

永恒的蓝色梦想 发表于 2020-7-10 21:03:47

生存不易 发表于 2020-7-10 20:59
当y=1~5,
结果分别是2,4,6,8,10
可以解释一下清楚一点吗

生存不易 发表于 2020-7-10 21:14:00

永恒的蓝色梦想 发表于 2020-7-10 21:03


def power(x,y):
    result = 1
    for result in range(y+1):
      result *= x
    return result

print(power(2,3))
当y分别等于1~5时,对应的结果是2,4,6,8,10
能不能解释清楚一下 具体是这样运算得到的


永恒的蓝色梦想 发表于 2020-7-10 21:23:39

生存不易 发表于 2020-7-10 21:14
当y分别等于1~5时,对应的结果是2,4,6,8,10
能不能解释清楚一下 具体是这样运算得到的

result 永远等于 x*y 。
页: [1]
查看完整版本: 幂运算