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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • sorted高阶函数中传入自定义排序函数, 实现忽略大小写排序。请用functools.partial把这个复杂调用变成一个简单的函数

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

    2020-08-30

  • 带参数的@decorator,@functools.wraps应该放置位置

    查看全部
  • import time


    def performance(unit):

        def performance_decorator(f):

            def fn(*args, **kw):

                t1 = time.time()

                r = f(*args, **kw)

                t2 = time.time()

                if unit == "ms":

                    print('call %s() in %fs ms' % (f.__name__, (t2 - t1)*1000))

                else:

                    print('call %s() in %fs s' % (f.__name__, (t2 - t1)))

                return r

            return fn

        return performance_decorator


    @performance('ms')

    def factorial(n):

        return reduce(lambda x,y: x*y, range(1, n+1))


    print factorial(10)


    查看全部
  • import time


    def performance(f):

        def fn(*args, **kw): 

            t1 = time.time()  

            r = f(*args, **kw) 

            t2 = time.time()  

            print 'call %s() in %fs' % (f.__name__, (t2 - t1))   

            return r            

        return fn              


    @performance

    def factorial(n):

        return reduce(lambda x,y: x*y, range(1, n+1))


    print factorial(10)



    查看全部
  • str.upper()把字符串 str 任意字符变成大写 str.lower()把字符串str任意字符变成小写 str.capitalize()返回一个首字符大写其他字符小写的str的副本 map(f,L)把L相应数据均通过f()函数转换为一个新的list map(func_name,list_obj)高阶函数:返回list_obj中每个元素分别经过func_name作用过的新的list,例子如下: def formate_name(s): return str.capitalize(s) print map(formate_name,['adam','LINDA','jany']) 输出结果为:['Adam','Linda','Jany']

    map()函数不改变原有的 list,而是返回一个新的 list。

    s.capitalize()第一个大写,其他全部小写

    print(str.upper())          # 把所有字符中的小写字母转换成大写字母
    print(str.lower())          # 把所有字符中的大写字母转换成小写字母
    print(str.capitalize())     # 把第一个字母转化为大写字母,其余小写
    print(str.title())          # 把每个单词的第一个字母转化为大写,其余小写



    查看全部
  • def add(x, y, f) :

            return f(x) + f(y)

    这里的f指函数的的定义,abs是绝对值函数,开根号函数math是包含各种函数或方法的模块,若前面是import math, 引用模块中的函数就要用格式math.sqrt()。

    查看全部
  • (lambda 参数:条件/运算方式,列表、元组等)

    查看全部
  • 任务需要过滤一些不符合的字符,所以用filter,用于对列表每一元素做运算时,用map

    查看全部
  • 本身符合则返回-1
    不符合自己所要求的的顺序  反而返回的是1

    逻辑相反

    查看全部
  • 在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上以下属性:

    class Person(object):    def __init__(self, name, gender, birth):
            self.name = name
            self.gender = gender
            self.birth = birth

    __init__() 方法的第一个参数必须是 self(也可以用别的名字,但建议使用习惯用法),后续参数则可以自由指定,和定义函数没有任何区别。

    items函数,将一个字典以列表的形式返回,因为字典是无序的,所以返回的列表也是无序的。iteritems()返回一个迭代器。

    setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。语法:

    setattr(object, name, value)


    查看全部
  • sorted() 是高阶函数,接受一个比较函数。

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

    查看全部
  • 在Python中,类通过 class 关键字定义。以 Person 为例,定义一个Person类如下:

    class Person(object):
        pass

    按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。类的继承将在后面的章节讲解,现在我们只需要简单地从object类继承。

    有了Person类的定义,就可以创建出具体的xiaoming、xiaohong等实例。创建实例使用 类名+(),类似函数调用的形式创建:

    xiaoming = Person()
    xiaohong = Person()


    查看全部
  • 如果导入的模块不存在,Python解释器会报 ImportError 错误:

    >>> import something
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named something

    有的时候,两个不同的模块提供了相同的功能,比如 StringIO 和 cStringIO 都提供了StringIO这个功能。

    这是因为Python是动态语言,解释执行,因此Python代码运行速度慢。

    如果要提高Python代码的运行速度,最简单的方法是把某些关键函数用 C 语言重写,这样就能大大提高执行速度。

    同样的功能,StringIO 是纯Python代码编写的,而 cStringIO 部分函数是 C 写的,因此 cStringIO 运行速度更快。

    利用ImportError错误,我们经常在Python中动态导入模块:

    try:
        from cStringIO import StringIO
    except ImportError:
        from StringIO import StringIO

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

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


    查看全部
  • 分别赋值 f1,f2,f3=count()

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

    2020-08-16

首页上一页1234567下一页尾页

举报

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

微信扫码,参与3人拼团

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

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