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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。 例如: def f(x, y): return x + y 调用 reduce(f, [1, 3, 5, 7, 9])时,最终结果为25 reduce()还可以接收第3个可选参数,作为计算的初始值。 reduce(f, [1, 3, 5, 7, 9], 100) 最终结果为125
    查看全部
  • 自己的一点思路: 1.执行count()返回一个list; 1.1 第一次循环,i=1,list=[<function f at 0x0000000003B80B38>]; 1.2 第二次循环,i=2,list=[<function f at 0x0000000003B80B38>,<function f at 0x0000000003B80BA8>]; 1.3 第三次循环,i=3,list=[<function f at 0x000000000422DB38>, <function f at 0x000000000422DBA8>, <function f at 0x000000000422DC18>]; 2.执行f1,f2,f3 = count(),f1 = <function f at 0x000000000422DB38>,f2 = <function f at 0x000000000422DBA8>,f3 = <function f at 0x000000000422DC18>; 3.执行f1(),f2(),f3(),实际都是执行内层函数f(内存中的地址不一样,可以说是不同的f),但此时i=3(经过三次循环),故返回的值均为9
    查看全部
    0 采集 收起 来源:python中闭包

    2018-03-22

  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。 使用匿名函数,可以不必定义函数名,直接创建一个函数对象,很多时候可以简化代码: >>> sorted([1, 3, 9, 5, 0], lambda x,y: -cmp(x,y)) [9, 5, 3, 1, 0]
    查看全部
  • 返回函数不要引用任何循环变量,或者后续会发生变化的变量。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-03-30

  • def myabs(): return abs # 返回函数 def myabs2(x): return abs(x) # 返回函数调用的结果,返回值是一个数值
    查看全部
  • SON(JavaScript Object Notation):一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是Python的Json模块序列化与反序列化的过程分别是 encoding和 decoding encoding:把一个Python对象编码转换成Json字符串 decoding:把Json格式字符串解码转换成Python对象 对于简单数据类型(string、unicode、int、float、list、tuple、dict),可以直接处理。 json.dumps方法对简单数据类型encoding:
    查看全部
  • filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
    查看全部
  • reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。
    查看全部
  • map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
    查看全部
  • *args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )这样调用的话,会提示语法错误“SyntaxError: non-keyword arg after keyword arg”。
    查看全部
  • (1) def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() 这里fs.append(f)只是引用了函数的函数名f,并没有调用函数f()。这就是为什么执行这条语句后没有执行函数内部程序的原因。 再来看看下面这种情况: def count(): fs = [] def f(j): def g(): return j*j return g for i in range(1, 4): r = f(i) fs.append(r) return fs f1, f2, f3 = count() print f1(), f2(), f3() 这里语句r = f(i),调用了法f(j)函数,执行了函数内部的程序,在这里实现了:i赋值给j,即j这个变量跟循环变量i无关(j变量属于函数f(j)),只是j的值跟i一样而已。再来看看r = f(i)的返回值,返回的是嵌套函数g()的语句j*j。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-03-30

  • 装饰器
    查看全部
  • 利用filter(),可以完成很多有用的功能,例如,删除 None 或者空字符串: def is_not_empty(s): return s and len(s.strip()) > 0 filter(is_not_empty, ['test', None, '', 'str', ' ', 'END']) 结果:['test', 'str', 'END'] 注意: s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。 当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')
    查看全部
  • 不知不觉就学到了这么高难度的部分,看来我是应该静下心来好好学习一下了。2017-2-39
    查看全部
  • 高阶函数
    查看全部

举报

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

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