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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
那个思考题方法之一,
print sorted([s for s in L if isinstance(s, Student)])
def calc_prod(lst):
def fun():
res=1
for i in lst:
res*=i
return res
return fun

f = calc_prod([1, 2, 3, 4])
print f()
a41和Jeff说的很棒啊,廖老师应该多看看高分评论,改进课件
def cmp_ignore_case(s1, s2):

return cmp(s1.lower(), s2.lower()) #请问s1和s2代表什么?这句代码看不懂???

print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
以上代码的第二行不懂,求解!!!哈哈哈
看着大家这样的评论我也就放心了~哈哈哈,继续啃骨头
其实参照着2.12的代码,这个写起来就很简单了~
我来解释一下,理解了好久
就是说fs定义了一个list,但是底下的append步骤只是加入函数所以返回的fs里面就是fs=[f,f,f],当f函数计算时i已经为3,所以结果都是9
不用标准答案稍稍改一下代码
def count():
fs = []
for i in range(1, 4):
def f():
return i*i
fs.append(f())
return fs

d = count()
print d[0]
print d[1]
print d[2]
这次我是直接返回值,就会好啦
print filter(lambda s:s and len(s.strip())>0,['test', None, '', 'str', ' ', 'END'])
啊啊啊开始有难度了
def calc_prod(L):
def last():
cal=1
for x in L:
cal = cal * x
print cal
return last
ls=[1,2,3,4]
now = calc_prod(ls)
now()
只改写count函数,以 f1(), f2(), f3()输出的方法:

global i
i=0
def count():
fs = []
def f():
global i
i+=1
return i*i
for cnt in range(3):
fs.append(f)
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
可以使用切片来切首字母
def __str__(self):
#if self.q == 1:
#return '%s' % (self.p)
return '%s/%s' % (self.p, self.q)
类属性直接在class下一行,函数def上一行建立,同时用等号赋值
由于创建实例必定会调用__init__()方法,所以在这里修改类属性count很合适
本题按参考代码通不过,需要引入try: except:
注意,这两个函数,都需要在句首
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消