为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • map(),reduce()对list的每个元素反复调用函数f,并返回最终结果值:

    reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,map()传入的函数接收一个参数,reduce()传入的函数 f 必须接收两个参数。

    查看全部
  • def format_name(s):

        return s[0].upper()+s[1:].lower()


    print map(format_name, ['adam', 'LISA', 'barT'])


    查看全部
  • 计算平方根可以用函数:

    >>> math.sqrt(2)
    1.4142...


    查看全部
  • 安装第三方模块的步骤

    python的模块

    • 内置了许多有用的模块

    • 可以安装第三方模块

    python提供的模块管理工具

    -easy_install

    -pip(推荐)

    查看全部
  • 使用__future__

         python的新版本会引入新的功能,但是,实际上这些功能再上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。

    from__future__import division


    当新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__中,以便旧的代码能在旧版本中测试新特性

    查看全部
  • 动态导入模块    

       如果导入的模块不存在,Python解释器会报 ImportError 错误。有的时候,两个不同的模块提供了相同的功能,比如 StringIO 和 cStringIO 都提供了StringIO这个功能。这是因为Python是动态语言,解释执行,因此Python代码运行速度慢。如果要提高Python代码的运行速度,最简单的方法是把某些关键函数用 C 语言重写,这样就能大大提高执行速度。

         同样的功能,StringIO 是纯Python代码编写的,而 cStringIO 部分函数是 C 写的,因此 cStringIO 运行速度更快。利用ImportError错误,我们经常在Python中动态导入模块:

    try:
        from cStringI() import StringI()

    except importError:

        from StringI() import String()

          上述代码先尝试从cStringIO导入,如果失败了(比如cStringIO没有被安装),再尝试从StringIO导入。这样,如果cStringIO模块存在,则我们将获得更快的运行速度,如果cStringIO不存在,则顶多代码运行速度会变慢,但不会影响代码的正常执行。

          try 的作用是捕获错误,并在捕获到指定错误时执行 except 语句。

        import simplejson as json

        json就是给simplejson起的别名

        利用import...as...,还可以动态导入不同名称的模块

    查看全部
  • Python2.x 的 sorted()函数如下:

    1sorted(iterable, cmp=None, key=None, reverse=False)

    不过sorted 在Python3.x 中发生了变化, 去掉了 cmp 参数。

    这就开始解释 这个函数的参数:

    iterable : 可迭代类型,就是我们传入的列表,另外这个函数时 原位置改变原列表的。

    reverse: 默认为False , 就是正常排列(也就是按照 cmp, key  等参数提供的值去排列,如果没有这两个值就是默认排列),

                 当给reverse 传参 为True 的时候,也就是把正常排列结果翻转过来。 下面会举例说明

    cmp: 该参数接受一个 函数作为参数值, 改函数需要返回 正数,负数,和零, 同时该函数需要接受2个参数,比较这两个             参数,选择返回值。同样下面有例子

    key:  该参数是 选取比较的值, 或者说是 声明,用列表元素的什么特征来比较,下有例子说明。

    参数解释完了,举例说明:

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

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

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

    查看全部
  • 在Python 3.x, 取消了 cmp 参数, 只保留了Key Function参数。正确代码如下:12L = [Student('Tim', 99), Student('Bob', 88), Student('Alice', 99)]print (sorted(L, key=lambda student:(student.score,student.name)))#优先按照score,其次按照name

    查看全部
    0 采集 收起 来源:python中 __cmp__

    2019-07-18

  • sorted和__cmp__中的形参s


    不懂__cmp__中s,并没有传入实参呀

    sorted(),这个python内置方法需要调用形参有(列表,cmp)。如果该类里面没有__cmp__这方法,她就默认排序,如果有,就调用这个类的cmp方法,所以这里的s就是列表里除自己以外的Student这类的实例。

    查看全部
    0 采集 收起 来源:python中 __cmp__

    2019-07-18

  • 导入模块

        要使用一个模块,我们必须首先导入该模块。python使用Import语句导入一个模块。可以认为导入的math就是i一个指向已导入模块的变量,我们可以访问math模块中所定义的所有公开的函数、变量和类。

         如果我们只希望导入用到math模块的某几个函数,而不是所有函数,可以用

        from math import pow,sin,log

    这样,可以直接引用pow,sin,log这3个函数,但是Math的其他函数没有导入进来 。

    当遇到名字冲突的时候--不同模块中的有相同名字的函数

         如果使用Import导入模块名,由于必须通过模块名引用函数名,因此不存在冲突。

          如果使用from...import导入函数,势必引起冲突。这时,可以给函数起个“别名”来避免冲突

       from logging import log as logger 

    查看全部
  • 可以用import 引用其他模块;用math.调用math模块的函数

    可以将同名模块放入不同的包中来解决模块名字相同的情况

    调用时要引用完整模块

    在文件系统中,包就是文件夹,模块就是xxx.py文件,包可以有多级

    如何区分包和普通目录:包下面有个_init_.py,每层都必须要有

    查看全部
  • 偏函数

        当一个函数有很多参数时,调用者就需要提供多个参数。如果减少参数个数,就可以简化调用者的负担。

        int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换,但Int()函数还提供额外的base参数,默认值为10,如果传入base参数,就可以做N进制的转换。

        假设要转换大量的二进制字符串,每次都传入int(x,base=2)非常麻烦,于是,可以定义一个Int(),默认把base=2传进去

        def int2(x,base=2)

              return int (x,base)

          functools.partial就是用来创建一个偏函数的,不需要我们自己定义int2(),可以用下面代码创建新函数:

    import functools

    int2=functools.partial(int,base=2)

         所以,functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值,这样,新函数调用的难度就降低了。

    cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

    查看全部
    0 采集 收起 来源:python中偏函数

    2019-07-18

  • sorted()函数

    sorted()函数可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。

    格式为:sorted(list,f),f传入两个参数进行比较。

    查看全部
  • filter()函数

    filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

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

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


    查看全部
  • reduce()函数

    reduce()函数接收一个函数 f,一个list,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。

    reduce()还可以接收第3个可选参数,作为计算的初始值。

    查看全部

举报

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

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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