冲扬心法

笑声激发自强,发愤、图强、飞身向上

   :: 首页  ::  ::  ::  :: 管理

随笔分类 -  Python编程

摘要:高级语言包括python一般都内置了一套try…catch…finally的错误处理机制: 如果认为某些代码可能会出错,可以用try来运行这段代码; 如果try的代码块出现错误,则try代码省下的代码不会继续执行,而是直接跳转到catch代码块,catch就是错误处理代码块(如果没有错误,则不执行) 阅读全文
posted @ 2018-03-15 13:26 风雨一肩挑 阅读(168270) 评论(0) 推荐(7)

摘要:枚举类型:在实际问题中,有些变量的值被限定在一个有限的范围内。例如:一个星期有且只有7天,一年有且只有十二个月,一个班每周有6门课程等等。如果把这些量说明为整型、字符串或者其他类型显然是不合适。编程界为此提供了一种称为枚举的类型。在枚举类型定义中列举出所有可能的取值,被说明为该枚举类型的变量取值范围 阅读全文
posted @ 2018-03-14 13:32 风雨一肩挑 阅读(1006) 评论(0) 推荐(0)

摘要:Python中的class可以定义许多定制方法,可以让我们方便的生成特定的类。 我们之前介绍了__slots__、__len__(),python中还有许多这样的特殊函数: __str__ 上面我们定义了一个普通的Student类,打印出的是一堆<__main__.Student object at 阅读全文
posted @ 2018-03-12 17:27 风雨一肩挑 阅读(350) 评论(0) 推荐(0)

摘要:以Animal类为例,假设要实现以下4种动物: Dog(狗)、Bat(蝙蝠)、Parrot(鹦鹉)和Ostrich(鸵鸟) 如果按照哺乳类和鸟类来区分的话,可以这样设计: Animal: |--Mammal |--Dog |--Bat |--Bird |--Parrot |--Ostrich 但是, 阅读全文
posted @ 2018-03-08 23:32 风雨一肩挑 阅读(610) 评论(0) 推荐(0)

摘要:python中,我们可以直接添加和修改属性的值: 但是,101明显超过了满分100分,不合理。可以通过创建setScore()方法,进行参数检查: 但是上面的过程略显复杂。 这时,可以使用@property,既可以用类似属性的方法访问类的变量,又可以检查参数,@property实现起来稍微有点复杂: 阅读全文
posted @ 2018-03-07 23:14 风雨一肩挑 阅读(253) 评论(0) 推荐(0)

摘要:绑定属性 从之前的文章中,我们知道python是动态语言——实例可以绑定任意属性。 那如果实例绑定的属性和类的属性名一样的话,会是什么情况呢? 可知,我们可以给实例变量绑定和类属性同样名字的变量;同时如果实例变量和类属性使用相同的名字时,实例属性将屏蔽掉类属性;最后,如果删除实例属性后,同样的名称, 阅读全文
posted @ 2018-03-07 15:31 风雨一肩挑 阅读(390) 评论(0) 推荐(0)

摘要:type() type()函数用于判断对象类型: type()返回的是对应class类型。下面是判断两个变量的type类型是否相同: 如何判断一个对象是否是函数呢?使用types模块中定义的常量: isinstance() 如果存在以下继承关系:object->Animal->Dog->Husty 阅读全文
posted @ 2018-03-06 21:05 风雨一肩挑 阅读(573) 评论(0) 推荐(0)

摘要:继承 在面向对象的程序设计中,当我们定义一个class时候,可以从现有的class继承,新的class成为子类,被继承的class称为基类,父类或超类。 比如,编写一个名为Animal的class: 接着编写两个从Animal继承的类:Dog和Cat: 那么,对于Dog、Cat来说,Animal就是 阅读全文
posted @ 2018-03-06 20:29 风雨一肩挑 阅读(524) 评论(0) 推荐(0)

摘要:上一节我们介绍了,Class内部可以有属性和方法,外部代码通过直接调用实例的方法来操作数据,这样就可以隐藏内部的逻辑实现;同时,外部代码还是可以自由的修改实例的属性和增加方法。 但是有时候,我们不想这样呢?即不让内部属性被外部访问。 可以在属性的名称前面加上两个下划线__。如果一个变量以__开头,就 阅读全文
posted @ 2018-03-06 19:25 风雨一肩挑 阅读(14908) 评论(0) 推荐(1)

摘要:面向对象编程的三大特点:封装、继承和多态! 封装 继续上篇文章的例子,Student类已经具备name和score属性,现在要答应学生的姓名和成绩,该怎么设计呢?可以这么想,谁最清楚name、score的数据是什么?当然是Student类的实例本身了!要访问这些数据,没有必要单独写一个外部函数,直接 阅读全文
posted @ 2018-03-06 13:23 风雨一肩挑 阅读(518) 评论(0) 推荐(0)

摘要:OOP——Object Oriented Programming,面向对象编程,是一种程序设计思想。该思想将对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 区别于面向过程的程序设计即把计算机程序视为一系列的命令集合(即一组函数的顺序集合),面向对象的程序设计是把计算机程序视为一组对象的 阅读全文
posted @ 2018-03-06 12:32 风雨一肩挑 阅读(1963) 评论(0) 推荐(0)

摘要:函数是个对象,并且可以赋值给一个变量,通过变量也能调用该函数: 利用函数的_name_属性,可以拿到函数的名字: 如果我们在调用函数now()前后自动打印日志,但又不允许修改now()函数的定义——在代码运行期间动态增加功能的方式,称之为‘装饰器’Decorator。 比如,定义一个能打印日志的de 阅读全文
posted @ 2017-12-28 22:46 风雨一肩挑 阅读(1842) 评论(1) 推荐(0)

摘要:有些时候,我们在传入函数时,不需要显示的定义函数,直接传入匿名函数更方便。在python中,对匿名函数提供了有限支持。以map()函数为例,计算f() = x2,使用匿名函数: 对比可知,匿名函数lambda x:x*x 实际上相当于: 关键字lambda表示匿名函数,冒号前面的x表示函数的参数。 阅读全文
posted @ 2017-12-27 11:00 风雨一肩挑 阅读(529) 评论(0) 推荐(0)

摘要:首先,来看一个一般意义的求和: 如果我们这么定义呢: 我们发现,这种定义的函数,返回的并不是一个具体的求和,而是一个函数!来看看怎么调用这个函数: 在这个例子中,lazy_sum中又定义了一个函数sum(),这个内部函数可以引用外部函数lazy_sum的参数和局部变量,当lazy_sum返回函数su 阅读全文
posted @ 2017-12-27 10:24 风雨一肩挑 阅读(802) 评论(0) 推荐(1)

摘要:python 内置的sorted()函数可以对一个list进行排序: 既然说是高阶函数,那么它还可以接受一个key函数来实现自定义的排序,比如按照绝对值大小进行排序: key指定的函数将作用于list中的每一个元素上,根据key函数返回的结果进行排序。 来看看字符串排序的问题: 默认的,对于字符串, 阅读全文
posted @ 2017-12-24 00:22 风雨一肩挑 阅读(1489) 评论(0) 推荐(0)

摘要:python内置了一个filter函数,用于过滤序列。和map函数类似,filter()函数也接受一个函数和一个序列。只不过filter函数中是把函数依次作用于序列中的每一个元素,如果是True则保留这个元素,如果是False,则舍弃这个元素。例如,给定一个list,删除偶数,保留奇数: 注意,fi 阅读全文
posted @ 2017-12-24 00:01 风雨一肩挑 阅读(2485) 评论(0) 推荐(0)

摘要:python 内置了map()和reduce()函数 1、map()函数 map()函数接收两个参数,一个是函数,一个是可迭代对象Iterable,map将传入的函数依次作用于序列的每一个元素。并把结果作为一个迭代器Iterator返回。 比如,函数f(x) = x2,要把这个函数作用在一个list 阅读全文
posted @ 2017-12-23 23:25 风雨一肩挑 阅读(609) 评论(0) 推荐(0)

摘要:1、变量可以指向函数 以内置的求绝对值abs()函数为例,: 可知,函数本身可以赋值给变量,即:变量指向函数。此时,我们可以通过变量来调用这个函数! 2、函数名其实也是变量 当abs指向10的时候,就无法通过abs(-10)调用该函数了。因为函数名其实就是一个指向函数的变量!abs这个变量已经指向一 阅读全文
posted @ 2017-12-20 15:53 风雨一肩挑 阅读(498) 评论(0) 推荐(0)

摘要:可以直接用for循环的数据类型有: 集合数据类型,如:list、tuple、dict、set、str等; 生成器generator,包括生成器和带yield的generator function。 以上这些可以直接使用for循环的对象统称为可迭代对象:Iterable. 可以使用isinstance 阅读全文
posted @ 2017-12-19 22:04 风雨一肩挑 阅读(431) 评论(0) 推荐(0)

摘要:通过上节的学习,我们知道使用列表生成式,可以直接创建一个列表。但是,有些时候,受到内存的限制等实际情况,列表生成式无法满足。比如,一个长度为1000万的列表,普通内存根本就不够,又或者实际处理的过程中,我们只需要访问前面几个元素,那后面的的绝大部分的空间都浪费了。 思路:如果能做到一开始并不是创建完 阅读全文
posted @ 2017-12-18 23:12 风雨一肩挑 阅读(8581) 评论(0) 推荐(2)