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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • reduce()函数 Python内置的高阶函数 可进行求和或求积 与map()类似,接受一个函数f,一个list,对List的每个元素反复调用函数f,并返回最终结果。 reduce(f, [1, 3, 5, 7, 9], 100) 对List内的每个元素进行操作(加或乘),第三个可选参数(100)为计算的初始值。
    查看全部
  • #先说一下*和**的区别,最好还是结合例子来说明用途 #比如我们定义了以下的函数 #它的输入参数一共有4个,其中x,y是可以缺省的 In [1]: def f(a,b,x=10,y=20): ...: return a+b+x+y ...: In [2]: f(1,2,x=3,y=4) Out[2]: 10 #先看看**的用法,比如,我有一个dict变量kw #它的元素刚好和我上面定义的函数的缺省部分有一样的 #命名,这时候为了调用函数f,我可以采用比较笨的办法,如 #f(1,2,kw['x'],kw['y']),也可以采用python的一种比较聪明的 #方法,就是把一个dict化成一排key-value对。这种方法就要用到两个** In [3]: kw={'x':3,'y':4} In [4]: kw Out[4]: {'x': 3, 'y': 4} #比如,这样 In [5]: f(1,2,**kw) Out[5]: 10 #一个*用法的出现也跟上面将的差不多, #它就是把一个list,tuple化成一排输入的简写 In [6]: arg=(1,2) In [7]: f(*arg,x=3,y=4) Out[7]: 10 #希望看到这里你应该能明白了 In [8]: f(*arg,**kw) Out[8]: 10 # ------------------------------- class Person(object): def __init__(self, name, gender, birth, **kw): self.name = name self.gender = gender self.birth = birth #kw是一个dict,它的iteritems返回key-value对组成的 #tuple, 所以这里要用k,v来接受key和value for k, v in kw.iteritems(): setattr(self, k, v) 在创建实例的时候,未知的属性既要输入属性名又要为这个未知属性赋值,所以是要k=v的格式,于是就是**kw而不是*agrs了。
    查看全部
  • 将首字母大写的方法: 1. capitalize() 将首字母大写,其余全部小写 2. upper() 全转换成大写 lower() 全转换成小写 3. title() 标题首字大写
    查看全部
  • **kw表示可以任意输入参数和对应的值,这些键值对被组织成字典dict,for k,v in kw.iteritems()表示对该字典的键值对进行迭代(k获得键,v获得值), iteritems()这个方法可以一个一个输出字典中的键值对,setattr(self,k,v)表示对实例自身设置属性和对应的值,self表示实例自身,k表示参数,v表示值
    查看全部
  • 高阶函数: def add(x, y, f): return f(x) + f(y)
    查看全部
  • kw是字典,iteritems()用于遍历字典kw,而setattr(self, k, v)就等价于self.k = v
    查看全部
  • setattr(self,k,v) 是相当于self.k = v 官方文档内容: setattr(object, name, value)
    查看全部
  • 在python3中,filter在list中 list(filter())
    查看全部
  • 2-2 python的高级函数 背景 变量指向函数 f = abs 函数名 指向函数的变量 abs = len 高阶函数 - 接收函数作为参数的函数
    查看全部
  • Python内置的 sorted()函数可对list进行排序: >>>sorted([36, 5, 12, 9, 21]) [5, 9, 12, 21, 36] 但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
    查看全部
  • def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------------------------------' if __name__ == '__main__': foo(1,2,3,4) foo(a=1,b=2,c=3) foo(1,2,3,4, a=1,b=2,c=3) foo('a', 1, None, a=1, b='2', c=3) 可以看到,这两个是python中的可变参数。*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”。
    查看全部
  • filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。 def is_odd(x): return x % 2 == 1 然后,利用filter()过滤掉偶数: filter(is_odd, [1, 4, 6, 7, 9, 12, 17])
    查看全部
  • 私有属性__count无法在类外部访问,所以print(Person.__count)会报错attributeerror
    查看全部
  • reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。
    查看全部
  • sorted调用匿名函数对L1进行排序操作;分步解释如下: 1.匿名函数调用cmp返回p1.name和p2.name的比较,排序按ASCII码进行从小到大比较 2.cmp函数:比较两个参数,参数1>参数2:1,参数1<参数2:-1,参数1=参数2:0
    查看全部

举报

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

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