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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 用r*r==x回避了直接判断类型的语句,很妙!
    查看全部
  • 比如你要显示货币,小数必须是两位: >>> print '%0.2f' % 3.1415926 3.14
    查看全部
  • %是格式化的意思,%s是格式化字符串,%f是格式化浮点数,这句话的意思是把f.__name__插入到了%s这个位置,(t2-t1)计算后的值插入到了%f这个位置
    查看全部
  • 晚上百科了辗转相除法,发现证明也不难理解,故写了下读书笔记发在了自己的个人公众号里,如下: http://mp.weixin.qq.com/s?__biz=MzA5MzgzNjA1MA==&mid=402580334&idx=1&sn=1dc2346c4287d5ea64ac10e2b18c3408#rd 辗转相除法基于如下原理: 两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数 即gcd(a,b) = gcd(b,a%b) = gcd(gcd(a,b), 0) 故可利用递归求解,把求两个大数的公约数【gcd(a,b)】 化为 求其中较小的数和两数的相除余数的最大公约数【gcd(b,a%b)】,直至b为0,则返回a为求得的最大公约数【gcd(gcd(a,b), 0)】。 代码如下: def gcd(a, b): return gcd(b, a % b) if b != 0 else a 即使a < b, 通过return gcd(b, a%b)也会变成求gcd(b,a) 证明方法可以看百度百科:辗转相除法 http://baike.baidu.com/view/255668.htm 辗转相除法的运算速度为 O(n),其中 n 为输入数值的位数。 辗转相除法处理大数时非常高效,它需要的步骤不会超过较小数的位数(十进制下)的五倍。加百利·拉梅(GabrielLamé)于1844年证明了这点,开创了计算复杂性理论。
    查看全部
  • 提示 filter object at 0x00604810 filter()的结果返回值不是list类型,python3 起,filter 函数返回的对象从列表改为 filter object(迭代器)
    查看全部
  • interesting
    查看全部
    0 采集 收起 来源:python中闭包

    2016-02-03

  • reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。 例如,编写一个f函数,接收x和y,返回x和y的和: def f(x, y): return x + y 调用 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。 上述计算实际上是对 list 的所有元素求和。虽然Python内置了求和函数sum(),但是,利用reduce()求和也很简单。 reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100,计算: reduce(f, [1, 3, 5, 7, 9], 100) 结果将变为125,因为第一轮计算是: 计算初始值和第一个元素:f(100, 1),结果为101。 第一个函数后不加()/[]
    查看全部
  • 注意:map()函数不改变原有的 list,而是返回一个新的 list。
    查看全部
  • 双下划线开头不能被外部访问,双下划线开头双下划线结尾是特殊属性但是可以被外部访问,单下划线开头也不能被访问
    查看全部
  • setattr(self,'name','xxx')设置属性
    查看全部
  • sorted是一个高阶函数,接收的是一个比较函数
    查看全部
  • python是动态语言,故直接给实例的属性赋值(不需创建),且不同实例属性可不同
    查看全部
  • try的作用是捕获错误,并在捕获到指定错误时执行except语句
    查看全部
  • 匿名函数只能有一个表达式,返回值是该表达式的结果
    查看全部
  • 由于属性可以是普通的值对象,如 str,int 等,也可以是方法,还可以是函数,大家看看下面代码的运行结果,请想一想 p1.get_grade 为什么是函数而不是方法: class Person(object): def __init__(self, name, score): self.name = name self.score = score self.get_grade = lambda: 'A' p1 = Person('Bob', 90) print p1.get_grade print p1.get_grade() 概念理解清楚,才能不出错。
    查看全部

举报

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

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