鱼C论坛

 找回密码
 立即注册
查看: 1375|回复: 12

[已解决]幂运算

[复制链接]
发表于 2020-7-10 20:11:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. def power(x,y):
  2.     result = 1
  3.     for result in range(y+1):
  4.         result *= x
  5.     return result

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



最佳答案
2020-7-10 20:15:49
1.变量重名。
2.多一次循环。


代码:
  1. def power(x,y):
  2.     result = 1
  3.     for _ in range(y):
  4.         result *= x
  5.     return result
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-10 20:13:03 | 显示全部楼层


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


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

2 的四次方等于 16


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-10 20:15:08 | 显示全部楼层
小学数学运算都不会的吗..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-7-10 20:15:27 | 显示全部楼层
这是你运行出来的结果?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-7-10 20:15:49 | 显示全部楼层    本楼为最佳答案   
1.变量重名。
2.多一次循环。


代码:
  1. def power(x,y):
  2.     result = 1
  3.     for _ in range(y):
  4.         result *= x
  5.     return result
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-10 20:16:15 | 显示全部楼层
你的 for 循环
  1. result in range(y+1)
复制代码
这句话,说明 result 每次循环会被重新赋值为 range() 中的数
也就是说 循环中 result 赋值就被覆盖了
建议建一个新的变量来存放总和
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 也是错的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-10 20:39:23 | 显示全部楼层
小学没学好?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-10 20:59:49 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-10 20:15
1.变量重名。
2.多一次循环。
  1. power(2,y)
复制代码

当y=1~5,
结果分别是2,4,6,8,10
可以解释一下清楚一点吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-10 21:14:00 | 显示全部楼层
  1. def power(x,y):
  2.     result = 1
  3.     for result in range(y+1):
  4.         result *= x
  5.     return result

  6. print(power(2,3))
复制代码

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

result 永远等于 x*y 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 20:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表