为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰

最赞回答 / wo蜗牛niu
斐波那契数列定义:a1=0,a2=1.........an=a(n-1)+a(n-2)def __init__(self, num):   # num为数列长度        a, b, L = 0, 1, []  #给a赋初值0,b赋初值1,L创建一个空list 。        for n in range(num):    #循环依次生成数列数值            L.append(a)   #把生成的数值添加到列表末尾            a, b = b, a + b   #将a赋值为b,...

最赞回答 / 慕标5379731
首先p代表有理数的分子,q代表有理数的分母。打个比方 比如1/3和2/5相加 self = 1/3( p = 1 ,q = 3),r = 2/5 (p = 2, q =5) 这个表达式就是1*5 + 3*2 , 3*5 生成的新对象的p = 1*5+3*2 q =3*5 

最新回答 / 慕数据3350164
分数是从高到低,也就是从大到小,而cmp排序是从小到大.

最新回答 / 为何_
不要纠结,这就是格式化输出的语法,代表%后面是参数,多参数记得加括号,要是个元组

最赞回答 / 为何_
导入time 模块 然后开始定义我们的闭包函数,我之前不知道高阶函数,都叫闭包,这只是个名字不要纠结首先闭包至少两层函数嵌套,这没问题那就定义一个performance函数,接下来返回值要是一个函数,那就写好return 一个函数,在开始定义里面函数这一层内层函数一定要执行想要装饰的函数本身,否则就不叫装饰器了,而传进来的函数就是performance的参数f,即f 就是@performance这句代码下面的函数 factorial,至于为什么是这个函数,那就是@语法的内部操作了.不用太纠结所以在perf...

最新回答 / qq_慕姐7166301
@logdef factorial(n):    return reduce(lambda x,y: x*y, range(1, n+1))将@log下的函数定义为log函数的参数

最赞回答 / qq_慕丝9034657
也是初学,我的理解是:f1,f2,f3 = count()   count()返回的是fs  是一个列表,所以这个可能就是像x,y = 2,3这样的赋值,不知道是不是元组拆包?  然后打印f1()  注意r = f(i) fs.append(r)  列表fs中添加的是r ,而r 是一个函数f(i),   i in range(1, 4),值为1,2,3,所以f(j) 函数被调用,把i的值传给j  ,返回g,  那就调用g()函数,g() 返回 j*j, 其实就是实参i * i,返回了1,4,9 分别对应 ...

最赞回答 / 为何_
然后开始定义我们的闭包函数,我之前不知道高阶函数,都叫闭包,这只是个名字不要纠结首先闭包至少两层函数嵌套,这没问题那就定义一个performance函数,接下来返回值要是一个函数,那就写好return 一个函数,在开始定义里面函数这一层内层函数一定要执行想要装饰的函数本身,否则就不叫装饰器了,而传进来的函数就是performance的参数f,即f 就是@performance这句代码下面的函数 factorial,至于为什么是这个函数,那就是@语法的内部操作了.不用太纠结所以在performance 和 ...

最赞回答 / 沉迷学习无法自拔_456
<...code...>原理不知道,以下希望能帮到你不加@property。那就是方法,用s.grade()调用,可得到正确返回值(CBA)加@property。装饰为属性,用s.grade即可返回CBA

最赞回答 / 启林
意思是:count()函数被调用后,返回3个值(这3个值其实组成了一个tuple)由于tuple是有序的,tuple中的3个值分别赋值给 f1, f2, f3即:tuple = count()f1 = tuple[0]f2 = tuple[1]f3 = tuple[2]
import math

def is_sqr(x):
if int(math.sqrt(x))**2 == x :
return x

print filter(is_sqr, range(1,101))

最赞回答 / Accenzer
你的描述看了一部分,感觉你已经完全被绕晕了。所以不针对你的提问一一回答,只说一下我觉得正确的理解,你可以看完后跑一下,我没有跑不保证每处细节都正确。首先,fs 是一个 list,只不过其中的元素不是数字而是函数。也就是说(fs[0])(),是可以调用该函数的。另外,i 的作用域实在count函数内的,所以当延迟调用 fs 里的任意函数时,去寻找 i 的值时,i 已经变成了 3。所以所有的结果都是9。另外 f1, f2, f3 = count(),是结构赋值语句,也就是说 f1 是 fs 里的第一个函数。f...

最新回答 / Shane灬7
“由于可以返回函数,我们在后续代码里就可以决定到底要不要调用该函数。”

最新回答 / 0302无名指
这个f指的是参数的f,所以不需要定义,由参数传过来的

最赞回答 / Anastasia2019
import mathdef is_sqr(x):    return int(math.sqrt(x))*int(math.sqrt(x))==xprint filter(is_sqr,range(1, 101))把math.sqrt(x)返回的浮点数用int()转换为整数即可

最新回答 / 慕仔8326853
这个也是可以的,不过由于它print的是f1(),f2(),f3(),这就要求你一定要用内层函数了,因为它输出的是内层函数的值。你试一下把输出的print f1(), f2(), f3(),删掉括号,它就可以输出了。?做完题多看下问答哈,我记得上一章的问答有对这个进行解释的
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消