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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • reduce( f(x,x+1) , list[x,x+1,x+2,] )函数,传入两个list的值作为方法参数,作用遍历list,
    查看全部
  • map( f(x) , list[] )函数,通过传入的方法,作用在list的每个值.改变每个值,组成新list
    查看全部
  • 借助高阶函数, 接受一个函数,包装后返回新函数,就可以动态的增强原函数
    查看全部
  • lambda只返回表达式的结果,想要输出什么,在表达式里写清楚。例如想要输出非空的字符串:lambda s: s and len(s.strip()) > 0,而不是做判断,lambda s:if len(s.strip()) > 0,这么写是没有输出的。
    查看全部
  • 内层函数引用外层函数的变量,然后返回内层函数的情况 称为闭包,特点是返回的函数引用了外层函数的局部变量 使用闭包的时候,要确保引用的局部变量在函数返回后不能改变
    查看全部
    0 采集 收起 来源:python中闭包

    2017-03-09

  • sorted() 可以对列表进行排序 同时可以接收一个比较函数f来实现自定义排序 如果元素x应该排在y的前面,f应该返回-1,否则返回1
    查看全部
  • 关于f1()的问题,重点要看指向,如果用r=f(i),f(i)又返回函数,构造了个g的话,那r的指向就是函数的地址,如果r=f(i),f(j)直接returnj*j,那r指向的其实就是计算出来的函数值,是个整数型,整数型是无法调用的,所以print f1(),f2(),f3()的话会出错。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-03-09

  • s.strip(x) 删除s字符串中开头、结尾处的x字符串 默认情况下删除 ' ','\n','\r','\t'
    查看全部
  • filter() 接收函数f和列表list f用来判断并给定list中元素T or F filter() 则生成一个判断结果为T的新list 正如filter的意思:过滤
    查看全部
  • reduce()还可选第三个参数 作为计算的初值
    查看全部
  • reduce() 传入函数F和列表list 要求F必须接受两个参数 reduce() 对list中元素不断做F操作,返回终值 理解为每一步都在reduce list 中元素个数
    查看全部
  • 问题:图2在执行的时候报错:TypeError: 'int' object is not callable。debug结果,f1,f2,f3结果为1,4,9,在指向count()的时候就已经执行完并计算完毕,所以不需要再进行f1(),f2(),f3()的调用了是吗?去掉()调用之后,结果就正确了。 图1,给出的f1,f2,f3的值均为引用的地址,但是这个地址到底是谁的地址?进行调用的时候,才能去执行,执行的谁,i,j的值到底是多少?【参考E盘截图】 解答:参见闭包的解释图2【参考E盘】
    查看全部
    0 采集 收起 来源:python中闭包

    2017-03-09

  • 1.def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum ‘发现没法把 lazy_sum 移到 calc_sum 的外部,因为它引用了 calc_sum 的参数 lst’就是说不能写成def lazy_sum(): return sum(lst)和def calc_sum(lst): print calc_sum(lst) return lazy_sum这样两个函数,因为lazy函数的lst参数找不到 2.正确使用闭包,要保证被引用的局部变量在函数返回后不能变 3.
    查看全部
    0 采集 收起 来源:python中闭包

    2017-03-09

  • 请编写一个函数calc_prod(lst),它接收一个list,返回一个函数,返回函数可以计算参数的乘积。 ?不会了怎么办 先定义能计算乘积的函数,再将此函数返回。 参考代码: def calc_prod(lst): def lazy_prod(): def f(x, y): return x * y return reduce(f, lst, 1) return lazy_prod f = calc_prod([1, 2, 3, 4]) print f()
    查看全部
  • 相应的应该想到有lower()函数....
    查看全部

举报

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

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