幂运算
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
为什么1、power(2,3)结果是6 不是4
2、 power(2,4)结果是8
这你都错了吧... 2 的 三次方是等于 8
2 的四次方等于 16
小学数学运算都不会的吗.. 这是你运行出来的结果?{:10_277:} 1.变量重名。
2.多一次循环。
代码:def power(x,y):
result = 1
for _ in range(y):
result *= x
return result Twilight6 发表于 2020-7-10 20:13
这你都错了吧... 2 的 三次方是等于 8
2 的四次方等于 16
result = 1,
第一次执行后result = 2,还属于range(4)
第二次执行后,result = 4,不属于range(4)
所以应该返回4啊 你的 for 循环
result in range(y+1)这句话,说明 result 每次循环会被重新赋值为 range() 中的数
也就是说 循环中 result 赋值就被覆盖了
建议建一个新的变量来存放总和 本帖最后由 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:15
1.变量重名。
2.多一次循环。
power(2,y)
当y=1~5,
结果分别是2,4,6,8,10
可以解释一下清楚一点吗 生存不易 发表于 2020-7-10 20:59
当y=1~5,
结果分别是2,4,6,8,10
可以解释一下清楚一点吗
? 永恒的蓝色梦想 发表于 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:14
当y分别等于1~5时,对应的结果是2,4,6,8,10
能不能解释清楚一下 具体是这样运算得到的
result 永远等于 x*y 。
页:
[1]