鱼C论坛

 找回密码
 立即注册
查看: 2774|回复: 8

第17课课后作业,求x的y次幂,函数看不懂

[复制链接]
发表于 2017-6-2 11:14:37 | 显示全部楼层 |阅读模式

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

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

x
def power(x,y):
    result = 1

    for i in range(y):
        result*= x

    return result

print(power(2,3))

如题,答案是这样,但不知道代码是什么意思,一行代码都看不懂,请各位解答。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-2 11:40:49 | 显示全部楼层
http://pythontutor.com/visualize.html#mode=edit

贴上去看看执行步骤。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-6-2 11:43:45 | 显示全部楼层
先定义了power()方法,然后进行调用输出。 1 * 2 * 2 * 2  == 2 ** 3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-9 21:05:21 | 显示全部楼层
def power(x,y):        定义函数power(x,y)有两形参x,y
    result = 1            定义变量result初始值为1

    for i in range(y):        循环y次 range(y) 是一个列表[0,1,2]
        result*= x              然后执行三次result*=x,由于result初始为1,所以等同x连乘了3次

    return result              这个不用说了吧。

print(power(2,3))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-9 21:16:03 | 显示全部楼层
话说,这个函数不用那么复杂呀!
这样即可:
  1. def power(x,y):
  2.     return x ** y

  3. Num = float(input("请输入底数:"))
  4. Pow = float(input("请输入幂:"))
  5. print(str(Num) + "的" + str(Pow) + "次方为:" + str(power(Num, Pow)))
复制代码


得出的结果是:
  1. 请输入底数:1.2
  2. 请输入幂:2.3
  3. 1.2的2.3次方为:1.5209567545525315
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-9 21:17:28 | 显示全部楼层
可乐爱宅着 发表于 2017-6-9 21:05
def power(x,y):        定义函数power(x,y)有两形参x,y
    result = 1            定义变量result初始值 ...

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

使用道具 举报

发表于 2017-6-9 21:58:22 | 显示全部楼层
china25qd 发表于 2017-6-9 21:17
1.5次方你怎么做?


这个问题。我现在还不知道。
不过不用这么钻牛角尖吧。
循环是一次一次的,你给我来个1.5次我不懂。
但是你可以用x ** 1.5 来实现x的1.5次方。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-11 12:43:34 | 显示全部楼层
我帮你跟踪一下程序,这样你就懂了。首先,python解释器会执行最后一个语句,解释器看到一个函数power,于是就跳了进去,看到了函数的声明和定义。接着,解释器看到赋值语句,就在内存中开了一个空间用来存放这个局部变量。接着,解释器就进了for循环,由于传递了参数后,x是2,y是3,解释器就知道这个for循环要执行3次,每次都乘一次x。第一次局部变量是1,所以x不变。循环3次以后,总结一下,就是2*2*2,也就是2的3次方。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-9 19:19:14 | 显示全部楼层
china25qd 发表于 2017-6-9 21:16
话说,这个函数不用那么复杂呀!
这样即可:

看到题目第一眼我也是直接写的:
def power(x,y):
     return(x**y)

不过没有写你后面的Num,Pow这些
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 06:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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