鱼C论坛

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

关于17讲的课后习题

[复制链接]
发表于 2014-9-18 20:38:28 | 显示全部楼层 |阅读模式

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

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

x
0. 编写一个函数power()模拟内建函数pow(),即power(x, y)为计算并返回x的y次幂的值。
def power(x, y):
    result = 1

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

    return result

print(power(2, 3))
表示没看懂甲鱼老师的答案啊,而且在编译器上运行之后也没有得到正确的答案。

直接这样有什么缺点?
>>> def function(x,y):
        z=x**y
        return z

>>> print(function(2,3))

刚学习Python,希望得到广大鱼油的指点~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-19 00:21:48 | 显示全部楼层
表示没看懂甲鱼老师的答案啊,而且在编译器上运行之后也没有得到正确的答案。——> 答案是8,正确的!
直接这样有什么缺点?——没什么缺点!小甲鱼的代码只是让你更清楚为什么是这样而已!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-19 08:44:59 | 显示全部楼层
上面只支持整数幂运算,下面你用的'**'运算符和pow函数是等价的,所以不算是实现了pow,不过支持小数幂运算 例如function(2, 0.5)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-19 09:07:53 | 显示全部楼层
可能上面的是pow在python中的运行方式,不过我也写的第二种
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-19 09:42:44 | 显示全部楼层
本帖最后由 swl19880916 于 2014-9-19 09:49 编辑
bevin 发表于 2014-9-19 08:44
上面只支持整数幂运算,下面你用的'**'运算符和pow函数是等价的,所以不算是实现了pow,不过支持小数幂运算  ...

正解,但是这题好像已经在哪重复过了......我觉得一切程序都不是最完美的。只是需求的地方可能已经完美了。记住这点。
建议小甲鱼老师搞个问题搜索。然后搜索到后,如果还不清楚,直接申请关联此问题,再问比较好。不知道论坛中有木有搜索帖子的功能,功能是不是能再强大一点?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-19 09:54:52 | 显示全部楼层
swl19880916 发表于 2014-9-19 09:42
正解,但是这题好像已经在哪重复过了......我觉得一切程序都不是最完美的。只是需求的地方可能已经完美了 ...

有搜索功能的哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-20 13:15:10 | 显示全部楼层
~风介~ 发表于 2014-9-19 00:21
表示没看懂甲鱼老师的答案啊,而且在编译器上运行之后也没有得到正确的答案。——> 答案是8,正确的!
直 ...

for i in range(y):
        result *= x
这句的意义是什么呢?看不懂啊 大神
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-20 13:16:06 | 显示全部楼层
bevin 发表于 2014-9-19 08:44
上面只支持整数幂运算,下面你用的'**'运算符和pow函数是等价的,所以不算是实现了pow,不过支持小数幂运算  ...

result=1 限制了只是证书吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-20 13:46:56 | 显示全部楼层
过河卒子Rover 发表于 2014-9-20 13:16
result=1 限制了只是证书吗?

y只能为整数,不然range(y)会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-20 14:07:01 | 显示全部楼层
bevin 发表于 2014-9-20 13:46
y只能为整数,不然range(y)会报错

哦,for i in range(y)这句代码的意义在哪里呢?循环中用到了i和y吗?这点有点没理解。求指点,新手,可能问的有点多了:mad:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-20 14:51:54 | 显示全部楼层
过河卒子Rover 发表于 2014-9-20 14:07
哦,for i in range(y)这句代码的意义在哪里呢?循环中用到了i和y吗?这点有点没理解。求指点,新手,可 ...

记数作用,把乘y次x
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-7 17:49:59 | 显示全部楼层
老师写的比较高大上
我也写的第二种
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-21 22:34:13 | 显示全部楼层
~风介~ 发表于 2014-9-19 00:21
表示没看懂甲鱼老师的答案啊,而且在编译器上运行之后也没有得到正确的答案。——> 答案是8,正确的!
直 ...

无语~在网上搜了整整一个小时才看懂甲鱼老师编的程序,
在此留笔希望让后人少找歪路,也希望老师或前人能够及时帮助我们这种小白,不然真的不懂
def power(x, y):   #建立POWER的函数,参数为X和Y
    result = 1        #设一个result的参数为1,主要是为了后面循环,你主要记住这个值是为了后面用的
   
    for i in range(y):   #让i去循环y次,
        result *= x      #这里就是result=result*X  这时result变成了X
                             #循环过程就是1先乘X,然后乘以y-1次X

    return result
例如:def power(7, 4)
等于1*7*7*7*7
我查了一小时网反正得到是这个结果,如果有错误的,也请同学及时指出,免得误人子弟,最后还请大神们多帮助下我这类小白,真的看视频再做题,感觉全部是跳跃的,完成要靠度娘去补知识,跳一段有时还能补,可连跳三段几乎就是走迷宫了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-17 00:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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