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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 概念:模块和包。 以py后缀结尾的文件(如test.py)称为模块; 包含这些py文件的文件夹称为包。(注意:区分包和普通目录,包每层下面都必须有_init_.py文件,即使是空的也可以) 应用:模块>解决代码多,难以维护的问题,好处是同一个名字变量互不影响;包>解决py模块的名称相同的冲突 调用:import a.py/import test.a.py(其中test是包名称,a是模块名称)


    查看全部
  • 1.高阶函数:函数调用函数
    2.闭包        : 外层是带参数的函数,内层函数调用了外层的参数
    3.装饰器   :就是高阶函数的应用,把函数做参数调用,包装一下,再返回函数
    4.带参数的装饰器:就是外面又套了一层的函数

    带特定参数的装饰器:多了一层真正执行装饰的子函数(xxx(f)),最内层还是返回被装饰的默认函数(带可任意参数),外层依次返回各级所定义函数名(洋葱,一层套一层)

    闭包:函数内套子函数,子函数用了外函数的参数(默认的或定义的)。

    外层函数不能调用子函数内的参数,不论在子函数定义前还是构建后。

    比无参数的decorator要多一层函数嵌套


    查看全部
  • python 3 和 2 的map返回值不同,python2 中返回的是list, 而3 中返回的是迭代器,想要在3中使用map, 需要在最外层加list转变一下格式:

    def f(x):
        return x*x
    m = list(map(f, [1, 2, 3, 4]))

    这样结果才是:

    [1, 4, 9, 16]


    查看全部
  • 不懂代码意思


    查看全部
  • 为什么lambda s后用【 s and len(s.strip())>0 】可以而 【 (len(s.strip())>0) and s 】不行

    123print filterlambda s: s and len(s.strip())>0 ,['test'None, '', 'str', '  ', 'END']) #运行正确 print filterlambda s: (len(s.strip())>0and s ,['test'None, '', 'str', '  ', 'END'])#运行错误


    2018-09-16源自:python进阶 2-10131 浏览3 回答

    最佳回答

    2018-09-17

    因为none无法用strip,就是为了避免none被strip报错,所以才先s,none先判断false ,and后面就不会执行了。

    取巧的用法,这么写相当于免了你去判断s是不是none,以及是none之后的后处理


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

    查看全部
  • def calc_prod(lst):

        def f(x,y):

            return x*y

        def lazy_calc_prod():

            return reduce(f, lst)

        return lazy_calc_prod


    f = calc_prod([1, 2, 3, 4])

    print f()


    查看全部
  • import math


    def is_sqr(x):

        return math.sqrt(x)%1==0


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


    查看全部
  • def format_name(s):
        return s[0].upper() + s[1:].lower()
    print map(format_name, ['adam', 'LISA', 'barT'])

    错误,每个名字的字母都分开了,成了独立的字符串

    查看全部
  • 因为方法也是一个属性,所以,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法

    p1.get_grade = types.MethodType(fn_get_grade, p1, Person)

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

    x,y为参数,f为函数关系

    查看全部
  • 类的命名以大写字母开头。

    查看全部
  • https://img1.sycdn.imooc.com//5bcfec3f0001d75807830447.jpg一切皆对象,对象皆数据类型,数据类型都可以返回出来。

    查看全部
    0 采集 收起 来源:课程总结

    2018-10-24

  • sqrt(x)如果是整数的话,那么它就可以整除1,结果自然没有余数,如果它是小数就不能“整除1”

    math.sqrt(x)%1


    查看全部
  • math.sqrt(x)  返回x的平方根,它的返回值是实数,不是int,比如:print math.sqrt(9) 结果是3.0,所以函数is_sqrt(x) 的所有返回值都是False,print 出来是一个[]

    查看全部

举报

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

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