自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

是金子总会发光

print('Hello World!!!')

  • 博客(29)
  • 收藏
  • 关注

原创 Python笔记——定制类

看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。__slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让class作用于len()函数。除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮助我们定制类。1、__str__先定义一个Student类,打印一个实例:class St...

2018-08-31 18:20:01 110

原创 Python笔记——多重继承

继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能。1、假设我们要实现以下4种动物:Dog - 狗狗;Bat - 蝙蝠;Parrot - 鹦鹉;Ostrich - 鸵鸟,采用多重继承。首先,主要的类层次仍按照哺乳类和鸟类设计:class Animal(object): pass# 大类(哺乳动物和鸟类):class Mammal(Animal):...

2018-08-31 15:43:19 281

原创 Python笔记——使用@property

在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改:s = Student()s.score = 9999这显然不合逻辑。为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在set_score()方法里,就可以检查参数:class Student(ob...

2018-08-30 17:48:21 145

原创 Python笔记——使用__slots__

1、正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性:class Student(object): # 创建一个class实例 passs = Student()s.name = 'Michael' # 动态给实例绑定一个属性print(s.name)def set_age(self, a...

2018-08-30 15:15:40 258

原创 Python笔记——实例属性和类属性

由于Python是动态语言,根据类创建的实例可以任意绑定属性。给实例绑定属性的方法是通过实例变量,或者通过self变量:class Student(object): def __init__(self, name): self.name = names = Student('Bob')s.score = 90但是,如果Student类本身需要绑定一个属...

2018-08-29 21:16:40 209

原创 Python笔记——获取对象信息

当我们拿到一个对象的引用时,如何知道这个对象是什么类型、有哪些方法呢?1、使用type()print(type(123))print(type('ssddfr'))print(type(None))# 结果<class 'int'># 结果<class 'str'># 结果<class 'NoneType'>如果一个变量指向函数或者类,也...

2018-08-29 20:34:48 125

原创 Python笔记——继承和多态

在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。1、继承比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印:class Animal(object): def run(se...

2018-08-29 17:06:14 168

原创 Python笔记——访问限制

1、__xxx:实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问              如果外部代码要获取name和score怎么办?可以给Student类增加get_name和get_score方法              又要允许外部代码修改score怎么办?可以再给Student类增加set_score方法2、__xxx__...

2018-08-28 18:04:48 128

原创 Python笔记——类和实例

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。1、仍以Student类为例,在Python中,定义类是通过class关键字:class Student(object): passclass后面紧接着是类名,即Stu...

2018-08-28 16:05:09 91

原创 Python笔记——模块

在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。1、使用模块的好处最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模...

2018-08-27 17:54:31 153

原创 Python笔记——偏函数

Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。1、要注意,这里的偏函数和数学意义上的偏函数不一样。在介绍函数参数的时候,我们讲到,通过设定参数的默认值,可以降低函数调用的难度。而偏函数也可以做到这一点:int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换:>>> i...

2018-08-25 20:28:12 121

原创 Python笔记——装饰器

1、由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。>>> def now():... print('2015-3-25')...>>> f = now>>> f()2015-3-252、函数对象有一个__name__属性,可以拿到函数的名字:>>> now...

2018-08-25 17:02:53 136

原创 Python笔记——匿名函数lambda

当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。1、计算,以map()函数为例,计算f(x)=时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:print(list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])))# 结果[1, 4, 9, 16, 25, 36, 49, 64, 81]2、...

2018-08-25 15:29:25 573

原创 Python笔记——返回函数

高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。我们来实现一个可变参数的求和。通常情况下,求和的函数是这样定义的:def calc_sum(*args): ax = 0 for n in args: ax = ax + n return ax但是,如果不需要立刻求和,而是在后面的代码中,根据需要再计算怎么办?可以不返回求和的结...

2018-08-24 17:45:20 133

原创 Python笔记——sorted

排序算法:无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来。1、利用Python内置的sorted()函数对list进行排序:print(sorted([36, 5, -12, 9, -21]))#结果[-21, -12, 5, 9, 36...

2018-08-23 17:58:50 237

原创 Python笔记——filter

Python内建的filter()函数用于过滤序列。和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。1、在一个list中,删掉偶数,只保留奇数:def is_odd(n): return n % 2 == 1print(list(fil...

2018-08-23 15:30:30 166

原创 Python笔记——map/reduce

1、mapmap()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。比如我们有一个函数f(x)=,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现如下:def f(x): return x*xr = map(f, [1, 2, ...

2018-08-22 11:27:43 141

原创 Python笔记——迭代器

我们已经知道,可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list、tuple、dict、set、str等;一类是generator,包括生成器和带yield的generator function。这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。1、可以使用isinstance()判断一个对象是否是Iterable对象:from ...

2018-08-20 15:27:06 88

原创 Python笔记——生成器

1、通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边...

2018-08-17 18:01:56 458

原创 Python笔记——列表生成式

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。1、生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]print(list(range(1,11)))2、生成[1x1, 2x2, 3x3, ..., 10x10]方法一:用循环L = []for x in range(1, 11...

2018-08-16 22:55:58 160

原创 Python笔记——迭代

如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)1、dict的迭代list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代:d = {'a': 1, 'b': 2, 'c': 3}for key in d: pri...

2018-08-14 17:29:19 151

原创 Python笔记——切片

1、取一个list或tuple的部分元素是非常常见的操作,但是取前n个元素就需要用到循环:L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']r=[]n=3for i in range(n): r.append(L[i])print(r)['Michael', 'Sarah', 'Tracy']2、对这种经常取指定索引范围的...

2018-08-13 15:23:04 142

原创 Python笔记——递归函数

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。1、举例计算阶乘,用函数fact(n)表示,则:,只有n=1时需要特殊处理。于是,fact(n)用递归的方式写出来就是:def fact(n): if n==1: return 1 return fact(n-1)*nprint(fact(5))120...

2018-08-12 18:09:29 208

原创 Python笔记——函数的参数

一、位置参数1、定义的函数def power(x): return x * xprint(power(4))16对于power(x)函数,参数x就是一个位置参数。当我们调用power函数时,必须传入有且仅有的一个参数x。2、定义的函数def power(x, n): s = 1 while n > 0: n = n - ...

2018-08-04 10:34:21 288

原创 Python笔记——定义函数

1、定义新函数在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。自定义一个求绝对值的my_abs函数:def my_abs(x): if x >= 0: return x else: return -xprint(my_abs(...

2018-08-02 18:41:40 292

原创 Python笔记——调用函数

1、查看函数用法(1)要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数。可以直接从Python的官方网站查看文档:http://docs.python.org/3/library/functions.html#abs(2)也可以在交互式命令行通过help(abs)查看abs函数的帮助信息。2、参数不对的报错调用函数的时候,如果传入的参数数量不对,会报...

2018-08-02 15:42:05 301

原创 Python笔记——dict和set

一、dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。1、举例假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list:names = ['Michael', 'Bob', 'Tracy']scores = [95, 75, 85]给定一个名字,要查找对应的成绩,就先要在names中找到对应的...

2018-08-02 11:30:45 177

原创 Python笔记——for和while循环

一、for循环依次把list或tuple中的每个元素迭代出来,例如:1、names=['Michael', 'Bob', 'Tracy']for name in names: print(name)执行这段代码,会依次打印names的每一个元素:MichaelBobTracy所以for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。...

2018-08-01 20:08:35 375

原创 Python笔记——条件判断

1、计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现:age=20if age>=18: print('your age is',age) print('adult')根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么...

2018-08-01 11:43:45 306

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除