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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • _init_.py 是python判断文件夹是否是包的必要条件 即使_init_.py是空的 引用 1.同名模块放入不同的包中可以解决冲突(p1.util) (p2.util) 包->文件夹 模块—>xxx.py文件 2.包可以有多层 3.包下面有个__init__.py文件:包中的每一层都必须有这个文件,以将其和普通目录区分开来
    查看全部
  • Python数字类型转换 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s ) 将序列 s 转换为一个元组 list(s ) 将序列 s 转换为一个列表 chr(x ) 将一个整数转换为一个字符 unichr(x ) 将一个整数转换为Unicode字符 ord(x ) 将一个字符转换为它的整数值 hex(x ) 将一个整数转换为一个十六进制字符串 oct(x ) 将一个整数转换为一个八进制字符串
    查看全部
  • @log('DEBUG') def my_func(): pass 把上面的定义翻译成高阶函数的调用,就是: my_func = log('DEBUG')(my_func) 上面的语句看上去还是比较绕,再展开一下: log_decorator = log('DEBUG') my_func = log_decorator(my_func) 上面的语句又相当于: log_decorator = log('DEBUG') @log_decorator def my_func(): pass 所以,带参数的log函数首先返回一个decorator函数,再让这个decorator函数接收my_func并返回新函数
    查看全部
  • 最大公约数(greatest common divisor,简写为gcd;或highest common factor,简写为hcf),指某几个整数共有因子中最大的一个。
    查看全部
  • 欧几里德算法 欧几里德算法又称辗转相除法, 用于计算两个整数a, b的最大公约数。其计算原理依赖于下面的定理: 定理: gcd(a, b) = gcd(b, a mod b) 证明: a可以表示成a = kb + r, 则r = a mod b 假设d是a, b的一个公约数, 则有 d|a, d|b, 而r = a - kb, 因此d|r。 因此,d是(b, a mod b)的公约数。 加上d是(b,a mod b)的公约数,则d|b, d|r, 但是a = kb + r,因此d也是(a, b)的公约数。 因此,(a, b) 和(a, a mod b)的公约数是一样的,其最大公约数也必然相等,得证。 欧几里德的Python语言描述为: def gcd(a, b): if a < b: a, b = b, a while b != 0: temp = a % b a = b b = temp return a
    查看全部
  • 约分方法:同除以最大公约数 求最大公约数: 方法1: def gcd(a, b): if b == 0: return a return gcd(b, a % b) 方法2: from fractions import gcd gcd(a,b) # 返回a,b的最大公约数
    查看全部
  • map()函数不改变原有的 list,而是返回一个新的 list。 利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。 def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
    查看全部
  • 利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用 装饰器内部函数fn()一定要返回被装饰函数【f()】的执行结果
    查看全部
  • 管str(),repr()和``运算在特性和功能方面都非常相似,事实上repr()和``做的是完全一样的事情,它们返回的是一个对象的“官方”字符串表示,也就是说绝大多数情况下可以通过求值运算(使用内建函数eval())重新得到该对象,但str()则有所不同。str()致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值,但很适合用于print语句输出。需要再次提醒的是,并不是所有repr()返回的字符串都能够用 eval()内建函数得到原来的对象。 也就是说 repr() 输出对 Python比较友好,而str()的输出对用户比较友好。虽然如此,很多情况下这三者的输出仍然都是完全一样的。
    查看全部
  • Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数。 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式 (如果没有等价的语法,则会发生SyntaxError 异常) 某对象没有适于人阅读的解释形式的话, str() 会返回与repr() 等同的值。很多类型,诸如数值或链表、字典这样的结构,针对各函数都有着统一的解读方式。 字符串和浮点数,有着独特的解读方式。 >>> s = 'Hello, world.' >>> str(s) 'Hello, world.' >>> repr(s) "'Hello, world.'" >>> str(1.0/7.0) '0.142857142857' >>> repr(1.0/7.0) '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...' >>> print s The value of x is 32.5, and y is 40000...
    查看全部
  • str()一般是将数值转成字符串。 repr()是将一个对象转成字符串显示,注意只是显示用,有些对象转成字符串没有直接的意思。如list,dict使用str()是无效的,但使用repr可以,这是为了看它们都有哪些值,为了显示之用。
    查看全部
  • 装饰器的作用
    查看全部
  • 这种语法彻底隐藏了原有的f1函数
    查看全部
  • 使用高阶函数进行包装
    查看全部
  • 考察下面的函数 f: def f(j): def g(): return j*j return g 它可以正确地返回一个闭包g,g所引用的变量j不是循环变量,因此将正常执行。 在count函数的循环内部,如果借助f函数,就可以避免引用循环变量i。 参考代码: def count(): fs = [] for i in range(1, 4): def f(j): def g(): return j*j return g r = f(i) fs.append(r) return fs f1, f2, f3 = count() print f1(), f2(), f3()
    查看全部
    0 采集 收起 来源:python中闭包

    2015-04-06

举报

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

微信扫码,参与3人拼团

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

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