为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
python进阶_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 类属性
    查看全部
  • 先看最里层,是一个二元函数,代表两个数相乘;中间层函数的返回值调用了一个reduce函数,意思是对lst里面的值依次调用f来计算(可以查看reduce的详细定义),lst初始值为1;最外层函数的返回值即中间层的结果。现在再按顺序读下去,这个calc_prod函数就是在对一个表里面的值不断调用f函数。ps:一定要把reduce的意思弄清楚!... 转自答疑区
    查看全部
  • def count(): fs = [] for i in range(1, 4): def f(m = i): return m * m fs.append(f) return fs f1, f2, f3 = count() print f1(), f2(), f3() 方法:问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能,所以在函数f()定义中改为f(m = i),函数f返回值改为m*m即可.
    查看全部
    0 采集 收起 来源:python中闭包

    2017-06-19

  • 对字符串排序时,有时候忽略大小写排序更符合习惯。请利用sorted()高阶函数,实现忽略大小写排序的算法。 输入:['bob', 'about', 'Zoo', 'Credit'] 输出:['about', 'bob', 'Credit', 'Zoo'] 对于比较函数cmp_ignore_case(s1, s2),要忽略大小写比较,就是先把两个字符串都变成大写(或者都变成小写),再比较。 def cmp_ignore_case(s1, s2): if s1.upper() < s2.upper(): return -1 if s1.upper() > s2.upper(): return 1 return 0 print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
    查看全部
  • 多重继承通过 super()调用__init__()方法时,A 虽然被继承了两次,但__init__()只调用一次
    查看全部
  • json.load()并不一定要从一个File对象读取内容。任何对象,只要有read()方法,就称为File-like Object,都可以传给json.load()。
    查看全部
    0 采集 收起 来源:python中多态

    2017-06-19

  • 请利用filter()过滤出1~100中平方根是整数的数,即结果应该是: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] ?不会了怎么办 filter() 接收的函数必须判断出一个数的平方根是否是整数,而 math.sqrt()返回结果是浮点数。 参考代码: import math def is_sqr(x): r = int(math.sqrt(x)) return r*r==x print filter(is_sqr, range(1, 101))
    查看全部
  • filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。 例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数: def is_odd(x): return x % 2 == 1 然后,利用filter()过滤掉偶数: filter(is_odd, [1, 4, 6, 7, 9, 12, 17]) 结果:[1, 7, 9, 17]
    查看全部
  • 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-06-19

  • print 中, “+”可以连接字符串与字符串,但不能连接字符串与数值
    查看全部
  • 查看全部
    0 采集 收起 来源:python中闭包

    2017-06-18

  • import functools def ignore_case(s1, s2): if s1.lower() == s2.lower(): return 0 elif s1.lower() > s2.lower(): return 1 else: return -1 sorted_ignore_case = functools.partial(sorted, cmp=ignore_case) print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
    查看全部
    0 采集 收起 来源:python中偏函数

    2018-03-22

  • 请编写一个函数calc_prod(lst),它接收一个list,返回一个函数,返回函数可以计算参数的乘积。 我的方法: def calc_prod(lst): def a(): def f(x,y): return x*y return reduce(f,lst) return a f = calc_prod([1, 2, 3, 4]) print f() 方法二: def calc_prod(lst): def a(): return reduce((lambda x,y: x*y),lst)#lambda函数(叫匿名函数,2-10章节有介绍) return a f = calc_prod([1, 2, 3, 4]) print f() 方法三: def calc_prod(lst): def f(): sum=1 for i in lst: sum*=i #sum函数为求和函数,sum*用法第一次见,需去详细了解。sum+=i => sum=sum+i return sum return f f = calc_prod([1, 2, 3, 4]) print(f())
    查看全部
  • class Person(object): def __init__(self, name, gender, birth, **kw): self.name = name self.gender = gender self.birth = birth self.__dict__.update(kw) xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student') print xiaoming.name print xiaoming.job
    查看全部
  • Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数! 定义一个函数 f(),我们让它返回一个函数 g,可以这样写: def f(): print 'call f()...' # 定义函数g: def g(): print 'call g()...' # 返回函数g: return g 仔细观察上面的函数定义,我们在函数 f 内部又定义了一个函数 g。由于函数 g 也是一个对象,函数名 g 就是指向函数 g 的变量,所以,最外层函数 f 可以返回变量 g,也就是函数 g 本身。 调用函数 f,我们会得到 f 返回的一个函数: >>> x = f() # 调用f() call f()... >>> x # 变量x是f()返回的函数: <function g at 0x1037bf320> >>> x() # x指向函数,因此可以调用 call g()... # 调用x()就是执行g()函数定义的代码 这样理解,f(g())->x=f()->x()=g() 请注意区分返回函数和返回值: def myabs(): return abs # 返回函数 def myabs2(x): return abs(x) # 返回函数调用的结果,返回值是一个数值
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类
友情提示:

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