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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
在python3 中,filter跟map类似,结果得用list封装一下。如作业题中,代码修改如下:

import math

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

print (list(filter(is_sqr, range(1, 101))))
python3中,要使用reduce,得从functools中引入,加上:
from functools import reduce
才能够用。
def cmp_ignore_case(s1, s2):
if s1[0].lower()<s2[0].lower():
return -1
if s1[0].lower()>s2[0].lower():
return 1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'],cmp_ignore_case)
return cmp(s1.lower(),s2.lower())

已采纳回答 / flagcn
因为虽然返回的参数分别是1,2,3,但这几个函数并没有计算,等到计算的时候(print f1, f2, f3...)i已经变成了3了,算以算出来都是9.
def calc_prod(lst):
def lazy_prod():
return reduce(lambda x,y: x*y, lst)
return lazy_prod

最新回答 / 追魂月如弓
明白了,参考https://segmentfault.com/a/1190000000322433 这是一个python3版本中的一个改动造成,map()函数结果必须传入list封装一下才行。所以改进为:def f(x):    return x*xprint (list(map(f, [1, 2 , 3, 4, 5, 6, 7, 8, 9])))执行结果:[1, 4, 9, 16, 25, 36, 49, 64, 81]请按任意键继续. . .
不怎么懂……
代码敢不敢缩进
懵逼了会。。。。
看到大家都懵逼我也就放心了
容我歪个楼,前几次学linux的时候,讲解老师的壁纸也是这个,我估计慕课上的老师录视频都是用的网站准备好的机器?
高中的时候要是理解的这么深就好了。。。。

最赞回答 / 魔luck
父类的初始化函数会先执行  ,最后才是 自己的初始化函数super(D, self).__init__(a)这句话,即先调用了 B C 的初始化,而B C 的初始化 又调用的 A 的 ,A的初始化有print 'init A...' 所以先输出 init A。 接下来  D 调用B C初始化那到底是先调用B 或者 C 呢?看这个class D(B, C),右边的参数先传入,即先调用了C。你可以试下B、C换下顺序 就明白了
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消