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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • 这里不是很懂
    查看全部
  • 这里注意可以捕捉并处理异常 class Person(object): def __init__(self, name, score): self.name = name self.__score = score p = Person('Bob', 59) print p.name try : print p.__score except AttributeError: print 'attributeerror'
    查看全部
  • 睡着了的貓貓 实例3:对第二个关键字排序 >>>L = [('b',6),('a',1),('c',3),('d',4)] >>>L.sort(lambda x,y:cmp(x[1],y[1])) >>>L >>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)] 实例4: 对第二个关键字排序 >>>L = [('b',6),('a',1),('c',3),('d',4)] >>>L.sort(key=lambda x:x[1]) >>>L >>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)] 实例5: 对第二个关键字排序 >>>L = [('b',2),('a',1),('c',3),('d',4)] >>>import operator >>>L.sort(key=operator.itemgetter(1)) >>>L >>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)] 实例7: >>>L = [('d',2),('a',4),('b',3),('c',2)] > L.sort(key=lambda x:x[1]) > L >>>[('d', 2), ('c', 2), ('b', 3), ('a', 4)] 实例8: >>> L = [('d',2),('a',4),('b',3),('c',2)] >>> L.sort(key=lambda x:(x[1],x[0])) > L >[('c', 2), ('d', 2), ('b', 3), ('a', 4)] 实例9: >>> L = [('d',2),('a',4),('b',3),('c',2)] L.sort(key=operator.itemgetter(1,0)) L [('c', 2), ('d', 2), ('b', 3), ('a', 4)] tuple是的比较从左到右比较的,比较完第一个,如果相等,比较第二个
    查看全部
  • 有理数的加分,题中给的是分数的加法。def __init__(self, p, q),p是分子,q是分母。有理数的加法就相当于,分子*分母 除以 分母*分母<br> 辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。<br> 这就是辗转相除法的原理。<br> def gcd(a,b); if b == 0: return a return gcd(b, a%b) return gcd(b, a%b) 后面的gcd(),不要忘记 四则混合运算的返回值都要返回类名中去,return Rational() 可以直接调用现成的 from fractions import gcd.就不用麻烦定义gcd了<br> 辗转相除法的格式<br> 例如,求(319,377):<br> ∵ 319÷377=0(余319)<br> ∴(319,377)=(377,319);<br> ∵ 377÷319=1(余58)<br> ∴(377,319)=(319,58);<br> ∵ 319÷58=5(余29),<br> ∴ (319,58)=(58,29);<br> ∵ 58÷29=2(余0),<br> ∴ (58,29)= 29;<br> ∴ (319,377)=29.<br> 可以写成右边的格式。<br> 用辗转相除法求几个数的最大公约数,可以先求出其中任意两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数,依次求下去,直到最后一个数为止。最后所得的那个最大公约数,就是所有这些数的最大公约数。
    查看全部
  • 截图1
    查看全部
  • 什么事面向对象编程
    查看全部
  • 在官网找需要的py模块
    查看全部
  • 安装web.py
    查看全部
  • 包(文件)和模块(相关代码)的关系
    查看全部
  • 不同文件下同名模块的完整模块名不同
    查看全部
  • 同名模块放入不同的包中解决重名问题
    查看全部
  • 引用其他模块
    查看全部
  • 代码越来越多的时候
    查看全部
  • 代码越来越多的时候
    查看全部
  • a, b = b, a+b一定要放在L.append(a)下面,否则第一个a,就成为了a + b(1),而不是0的起始值了。 先执行append函数,再执行a,b = a, a+b,起始就先提取a=0了。<br> <br> class Fib(object):<br> def __init__(self, num):<br> a, b, L = 0, 1, []<br> for n in range(num):<br> L.append(a)<br> a, b = b, a + b<br> self.numbers = L<br> self.numbers中的numbers是属性名,可以任意起名,但是要方便其他人理解。而(self, num)则是属性值,不可混为一谈<br> 要在for in之前定义数列L,否则将会报错referenced before assignment。所以要先定义数列,再向数列中增加数值 class下面的def __init__格式是不变的
    查看全部
    0 采集 收起 来源:python中 __len__

    2018-03-22

举报

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

微信扫码,参与3人拼团

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

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