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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  •  sorted()函数可对list进行排序

    数字可以正常从小到大排序

    想要从大到小排序,可以接受一个比较函数

    def reversed_cmp(x, y):
        if x > y:
            return -1
        if x < y:
            return 1
        return 0

    也可以排序字符串,按照ascii码排序(所以大写字母在小写字母前面)

    查看全部
  • isinstance(变量,数据类型)

    查看全部
  • filter()函数

    例如,要从一个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]

    —————————————————————————

    注意: s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。

    当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' '),如下:

    a = '     123'
    a.strip()

    结果: '123'

    a='\t\t123\r\n'
    a.strip()

    结果:'123'

    查看全部
  • 这个我错了,不会。

    原因:分不清,类和成员属性

    查看全部
  • lambda 参数 :返回值

    查看全部
  • python3中reduce函数被取消了,放入到了functools模块中,所以在语句前加上一条:

    from functools import reduce

    reduce(f, list)

    对list中的元素依次求f

    可以用来连乘,连除等...

    先计算头两个元素:f(1, 3),结果为4;
    再把结果和第3个元素计算:f(4, 5),结果为9;
    再把结果和第4个元素计算:f(9, 7),结果为16;
    再把结果和第5个元素计算:f(16, 9),结果为25;
    由于没有更多的元素了,计算结束,返回结果25。


    查看全部
  • 一、错误代码解析:

    1. 首先,return fs是返回一个fs(list来的),list里面有3个元素,都是f的地址(这里定义了三次f函数,所以地址都不同),所以如果这么输入:

      >>>count()

      [<function count.<locals>.f at 0x000001AD8DD17D90>,<function count.<locals>.f at 0x000001AD8DD17E18>,<function count.<locals>.f at 0x000001AD8DD17EA0>]

    2. 再来看看代码f1,f2,f3=count(),其实这相当于[f1,f2,f3]=count(),不信你可以试试,效果是一样的

    3. 最后我们来讨论一下为什么三个f1(),f2(),f3()返回的值都是9?

      由于当我们把函数f加入到fs这个list上时,是按照当i=1时,fs=[f];i=2时,fs=[f,f];i=3时,fs=[f,f,f]。然后就停止了,i定个在3这个值里面。后来当我们调用f1()f2()f3()时,用的都是i=3.意思是i分别等于123时,是我们在list的末尾加入f函数的过程,后来调用f()的时候,i已经停止循环了

    二、正确代码解析:

    1. 更改后的代码中f(j)的功能时返回一个能够计算j*j的函数(由于后面的append需要加入的是函数而非函数值,这样就巧妙地解决了)

    2. 而r=f(i)已经提前把i传入f函数里面,这样就确保不会因循环变量的改变而改变了g()的值了


    查看全部
    1 采集 收起 来源:python中闭包

    2019-05-28

  • map() 函数:对一个list进行批量操作,这个操作的内容由函数f决定

    map(f, list)

    map返回一个新的list,不改变原始list

    由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。


    查看全部
  • 变量名可以指向函数,因此函数可以通过变量传给另一个函数作为参数,后面这个函数就叫做高阶函数

    变量可以指向函数(调用这个变量和调用这个函数的效果是一样的)

    https://img1.sycdn.imooc.com//5ceca86f0001fd9e03720258.jpg

    函数名其实就是指向函数的变量(函数名和普通的变量名没有什么区别,它指向的只是一个函数对象)

    demo中,直接使用abs,这个函数名实际上是一个变量,将abs这个变量指向len函数,这是再去使用abs(-10)就不会执行原有的绝对值操作,而是len函数该有的操作。

    https://img1.sycdn.imooc.com//5ceca9950001288807140254.jpg

    高阶函数:能接受函数做参数的函数

    https://img1.sycdn.imooc.com//5ceca9c50001419910160392.jpg

    https://img1.sycdn.imooc.com//5cecaa150001830404280226.jpg

    变量名可以指向函数,因此函数可以通过变量传给另一个函数作为参数,后面这个函数就叫做高阶函数

    查看全部
  • 函数式编程

    • 函数(function)

    • 函数式(functional)一种编程范式

    函数式编程是一种抽象计算的编程模式

    https://img1.sycdn.imooc.com//5ceca76d0001ad0d07210294.jpg

    函数式编程特点:

    https://img1.sycdn.imooc.com//5ceca7b800014a9315880372.jpg

    https://img1.sycdn.imooc.com//5ceca7e10001773014420774.jpg

    查看全部
  • 将要学习:

    • 函数式编程

    • 模块:如何使用模块

    • 面向对象编程:面向对象的概念、属性、方法、继承、多态

    • 定制类:利用python的特殊方法定制类

    学习目标

    • 掌握函数式编程

    • 掌握面向对象编程

    • 能够编写模块化的程序

    查看全部
    1 采集 收起 来源:课程介绍

    2019-05-28

  • https://img1.sycdn.imooc.com//5ceca4ea00012f6c11060506.jpg

    https://img1.sycdn.imooc.com//5ceca5000001039709640518.jpg

    python基础回顾

    查看全部
    0 采集 收起 来源:课程介绍

    2019-05-28

  • 要定义关键字参数,使用 **kw

    除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。


    查看全部
  • 在定义class,function,method时 可以用pass来完成一个“完整”的定义,无需return,无需表达式等等,解释器将其视为正确的代码块。

    查看全部
  • 类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的

    查看全部

举报

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

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