鱼C论坛

 找回密码
 立即注册
查看: 3457|回复: 3

python--第17课:定义函数power(x,y); 答案看不懂求讲解。(1)

[复制链接]
发表于 2017-1-9 17:06:49 | 显示全部楼层 |阅读模式
10鱼币
x的y次幂.png

#print一行是小甲鱼打错了?


求解:
for i in range(y):
        result *= x
--------------------------------------
这一段是怎么运作的?

假设power(2,4), 自以为是:
range(4)
(0,1,2,3),
result(分别)=0*2+1*2+2*2+3*2

然而结果并不对。

最佳答案

查看完整内容

power(2,4) 应该返回 2*2*2*2 *= 是自乘符号,result *= x,相当于 result = result * x for循环是把range(4)的值赋值给i(没有使用),这里只用来做4次循环 i=: 0 : result = 1*2 1 : result = (1*2)*2 2: result = (1*2*2)*2 3: result = (1*2*2*2)*2
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-9 17:06:50 | 显示全部楼层
power(2,4)  应该返回 2*2*2*2
*= 是自乘符号,result *= x,相当于  result = result * x
for循环是把range(4)的值赋值给i(没有使用),这里只用来做4次循环
i=:
0 : result = 1*2
1 : result = (1*2)*2
2:  result = (1*2*2)*2
3:  result = (1*2*2*2)*2


评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
XIO + 5 + 5 + 3 感谢回复,清晰易懂,谢谢。

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-9 17:30:45 | 显示全部楼层
本帖最后由 无符号整形 于 2017-1-9 17:33 编辑
  1. for i in range(y):
  2.                 result *= x
复制代码

这一段先产生一个数列,里面有从y个元素(分别是0~y),然后循环y次,result不断地乘x,直到循环结束为止。
假设power(2,4):
会产生4个元素:(0,1,2,3),每一次送代到i里面
然后,送代(循环)4次。(要注意刚开始result=1,x=4)
第一次循环:result*=4,现在result为4
第二次循环:result*=4,现在result为16

所以,你其实把y和x搞混了。。。

另外,算x的y次方可以用x ** y

评分

参与人数 1荣誉 +1 贡献 +1 收起 理由
XIO + 1 + 1 版主大大。。。我没看懂。。

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-19 13:13:39 | 显示全部楼层
在这个语句中i和它要×的数没有直接关系,i只是相当于计数器,只是计算够这么多次数就好了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 21:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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