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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • def f():
        print 'call f()...'
        # 定义函数g:
        def g():
            print 'call g()...'
        # 返回函数g:
        return g
    
    x=f()
    print x
    x()
    print x()


    call f()...

    <function g at 0x0000000002671518>

    call g()...

    call g()...

    None


    查看全部
  • def cmp_ignore_case(s1, s2):

        ts1 = s1.upper()

        ts2 = s2.upper()

        if ts1 > ts2:

            return 1

        elif ts1 == ts2:

            return 0

        else:

            return -1


    print sorted(['bob', '123', '', 'Credit'], cmp_ignore_case)


    查看全部
  • import math


    def is_sqr_int(x):

        value = math.sqrt(x)

        return int(value) == value


    print filter(is_sqr_int,range(1,101))


    查看全部
  • 调用 reduce(f, [1, 3, 5, 7, 9])时,reduce函数将做如下计算:

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


    查看全部
  • reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100,计算:

    reduce(f, [1, 3, 5, 7, 9], 100)

    结果将变为125,因为第一轮计算是:


    查看全部
  • import math


    def add(x, y, f):

        return f(x) + f(y)


    print add(25, 9, math.sqrt)


    查看全部
  • 为一个类动态添加方法,注意要import types

    import types
    def fn_get_grade(self):
        if self.score >= 80:
            return 'A'
        if self.score >= 60:
            return 'B'
        return 'C'

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

    p1 = Person('Bob', 90)
    p1.get_grade = types.MethodType(fn_get_grade, p1, Person)
    print p1.get_grade()
    # => A
    p2 = Person('Alice', 65)
    print p2.get_grade()
    # ERROR: AttributeError: 'Person' object has no attribute 'get_grade'
    # 因为p2实例并没有绑定get_grade

    查看全部
  • 首写字母大写 s[0].upper()   其余字母小写 s[1:].lower()


    map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

    格式为:map(f,list)

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


    查看全部
  • 开平方的函数  math.sqrt()

    使用这个函数,需要引入 import math 


    查看全部
  • class Person(object):
        def __init__( self,name, gender, birth,**kw):
            self.name = name
            self.gender = gender
            self.birth = birth
            for k, v in kw.iteritems():
                setattr(self, k, v)


    **kw        

    for k, v in kw.iteritems():

                setattr(self, k, v)

    可以接受任意属性

    查看全部
  • import functools

    sorted_ignore_case = functools.partial(sorted,key=str.lower)

    print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])


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

    2019-08-06

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

    匹配带入

    查看全部
  • def log(f):
        def fn(x):
            print 'call ' + f.__name__ + '()...'
            return f(x)
        return fn

    f.__name__表示函数名称

    查看全部
  • >>> getattr(s, 'name')  # 获取name属性'Bob'
    
    >>> setattr(s, 'name', 'Adam')  # 设置新的name属性>>> s.name
    'Adam'
    
    >>> getattr(s, 'age')  # 获取age属性,但是属性不存在,报错:Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'Student' object has no attribute 'age'
    
    >>> getattr(s, 'age', 20)  # 获取age属性,如果属性不存在,就返回默认值20:20


    查看全部
  • 求最大公约数,辗转相除法

    查看全部

举报

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

微信扫码,参与3人拼团

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

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