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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
这个题目是一个逆天的题目, 我看是闭包, 满脑子想的都是闭包的
其实大部分人被fs这个数组搞晕了, 给个小例子解释下
fs = ['a', 'b', 'c']
a1, a2, a3 = fs
print a3 -> 结果是 c
fs = ['a', 'b', 'c', 'd']
a1, a2, a3 = fs
print a3 -> 结果编译不通过, 报错
题目中的f1(), f2(), f3() 其实只是把数组fs的值取出来.
import math

def add(x, y, f):
if x*y >=0: #不知道是否math.sqrt()支持对负数开根,所以一律禁止传入负数
return f(x) + f(y)

print add(25, 9, math.sqrt)
这节的判断有点像阅卷靠死答案一样。。。
可以把函数名当成指针来看,应该会有更深的理解
....我直接写的是sqrt,鬼知道还要加上math...我还以为import就是类似include的作用呢...还加个毛线的math.?????
def count():
fs = []
for i in range(1, 4):
def f(j):
def g():
return j*j
return g
fs.append(f(i))
return fs
import math

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

print filter(is_sqr, range(1, 101))
表示第二章一熬过去,飞快就到这儿了……多看点参考,多揣摩几遍,第二章还是能过。
def __cmp__(self, s):
if self.score>s.score:
return -1
elif self.score<s.score:
return 1
else:
return (self.name<s.name)and -1 or 1
def cmp_ignore_case(s1, s2):
u1 = s1.upper()
u2 = s2.upper()
if u1 < u2:
return -1
if u1 > u2:
return 1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
import math

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

print filter(is_sqr, range(1, 101))
def prod(x, y):
return x * y

print reduce(prod, [2, 4, 5, 7, 12])
现在只能对着答案敲了啊
咋办?
现在完全不能理解了,感觉有些吃力了
def__int__(self,name):
self.name=name
这块看不懂,求大神解释
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消