python学习
糯米粿条呀
想用代码表达自己
展开
-
python之切片
切片:截取list、tuple以及字符串中片段的操作。比如截取一个L=[‘tim’,’john’,’mary’]这个list中有3个元素,如果要截取前两个,可以用L[0:3]要注意,括号内的意思是从0开始,索引到3结束,但是不包括3除了正着取,我们还可以倒着取比如从后面开始的L[-2:-1]要注意倒数第一是从-1开始取的小技巧:Python支持省略,即可以L[ :]以及L[-3: ]的来表示以及,...原创 2018-06-12 23:32:59 · 345 阅读 · 0 评论 -
python之继承和多态
定义class时括号内的内容就是父类名,如果继承了父类,也就拥有了父类一系列属性以及函数class Animal(object): def run(self): print('animal is running')class Dog(Animal): passa=Dog()print(a.run())如上就是集成的作用。而多态意思就是子类能够重写覆盖父类的方...原创 2018-06-14 19:19:30 · 313 阅读 · 0 评论 -
python之动态性
对于静态语言来说,如果函数内需要的是Animal类型,则传入的对象必须是Animal类型或者它的子类,不然是调用不了其run方法的。但是python属于一种动态语言,传入的不一定钥匙Animal类型,只需要保证传入的对象有一个run()方法就可以了比如:class Animal(object): def run(self): print('animal is running...原创 2018-06-14 19:20:08 · 7753 阅读 · 1 评论 -
python之对象常用方法
type()类:常用来判断对象类型,基本类型都可以判断出来,如果我们想要比较出对象属性,比如一个函数,一个类,我们通常可以使用types模块中定义的常量例子:import typesclass Animal(object): def __init__(self): self.name='tim'class test(object): passdef tes...原创 2018-06-14 19:21:07 · 218 阅读 · 0 评论 -
python之使用slots限制设置上属性
Python之所以称为动态语言,就在于他可以中途加入或者设置一些属性方法。比如创建了一个class的实例之后,可以为实例添加属性,也可以为class添加属性方法如下import typesclass Animal(object): def __init__(self,name): self.name=name def run(self): prin...原创 2018-06-14 19:22:05 · 277 阅读 · 0 评论 -
python之多重继承
因为继承可以获取父类的属性以及函数,所以继承在面向对象编程中是一个重要的方式,但是,如果对象中的继承关系过多,就会导致继承层次太多,因此出现了多重继承的概念,即继承不再是一对一,而是可以一个子类继承多个父类的方式,方法就是在类后面的括号用逗号隔开每一个继承类如下:class Animal(object): passclass Mammal(object): passclass ...原创 2018-06-14 19:22:33 · 424 阅读 · 0 评论 -
python之错误处理
同java一样,在python中也有try 。。。except。。。。finaly的错误处理机制try: print('try...') r=5/0 print('result:',r)except ZeroDivisionError as e: print('except',e)finally: print('finally....')print('...原创 2018-06-14 19:23:43 · 361 阅读 · 0 评论 -
python之文件读写
Python中的读写文件与C是兼容的。①比如读文件,使用的是open()函数f=open(‘C:/users/xuwei/desktop/test.txt’,’r’)print(f.read())f.close()这样就可以打开文件,要注意的是,read()是一次性读取文件的所有内容并放在内存用一个str对象表示,所以,read()函数的使用也有讲究,比如read(size)是以size个单...原创 2018-06-14 19:24:49 · 188 阅读 · 0 评论 -
python之数据类型
数据类型:1. 整数:任意大小的包括正负都行2. 浮点数:可以写1.34或者(0.000012用1.2e-5表示)3. 字符串:可以用双引号或者单引号表示,但是要注意引号本身不作为字符串的一部分,如果要把引号作为字符串的部分,则要用\来标识,比如 ‘I \’m \”ok\”’ 比如上面这个式子中有个单引号以及一对双引号。(btw 在python中的\是一个转义字...原创 2018-06-09 10:13:02 · 142 阅读 · 0 评论 -
python之list和tuple
List:有序的集合(可以随时添加以及删除)比如:Classmates=[‘tom’,’tim’,’mary’]这里的Classmates就是一个listlen()函数:len(list)函数可以获取list元素的个数同时list和数组一样,可以通过下标索引来获取但是记住是从0开始且最后元素的索引为:len(list)-1或者Classmates[-1]来表示所以以此类推可以获得倒数第二个倒数第三...原创 2018-06-09 10:13:31 · 158 阅读 · 0 评论 -
python之条件判断
Python里的if,else等例子:age=19if age>18: print(‘yourage is’,age) pring(‘adult’) 除此之外,if里面一样能设置布尔型判断比如:If x: Print(‘True’)只要x非0、非空字符就可以判断为trueelse以及elif例子:age=20if age>6: ...原创 2018-06-09 10:13:54 · 148 阅读 · 0 评论 -
python之input
Input():读取用户输入例子:birth=input(‘birth::’)If birth<2000: Print(‘00前’)else: print(‘00后’)input()括号中的内容是提示信息。以上程序运行会出错因为input获取的为字符串,而进行条件判断是需要用整型,所以会出错。正确程序如下:s=input('birth:')birth=int(...原创 2018-06-09 10:14:20 · 816 阅读 · 0 评论 -
python之循环
类似的for例子:names=[‘tom’,’john’,’mary’]for name in names: print(name)意思:将names中的每一个元素赋值给name,同时打印出来。从0加到100的程序利用range()函数range(x)能够产生一个从0开始但是小于5的整数序列,在通过list()函数将他转换为list。sum=0for x in list(range...原创 2018-06-09 10:15:07 · 424 阅读 · 0 评论 -
python之dic和set
dic:类似的键值对存储,相比list有更快的查找速度。例子:d={‘ton’:90,’john’:86,’mary’:100}作为结果的d[‘ton’]的结果就是90同样,dic也可以赋值操作,但是重新赋值之后的dic就会被重新配置,而一旦dic中不存在这个键的值,则会报错。所以有以下函数:d.get(‘ton’) 如果key不存在则会返回none,同样的可以自己指定返回值d.get(‘ton’...原创 2018-06-09 10:15:25 · 1012 阅读 · 1 评论 -
python之访问限制
Python的类与实例中,总有一些属性或者函数是我们想要隐藏的,所以可以把他们私有化即在变量前加双下划线__即可,比如class Student(object): def __init__(self,name,score): self.name=name self.__score=score def __print_score__(self): ...原创 2018-06-14 19:18:36 · 575 阅读 · 0 评论 -
python之类和实例
Python中的类和实例就是抽象模板创建类的方法:class Student(object): pass类名通常大写,括号中的object是继承的类,如果没有则添object,这是所有类最终都要继承的类类是不占内存的,只有创建了实例才会分配内存比如Y=Student()创建实例要加上()类成员:绑定属性用__init__函数 (特定的函数)比如:Class Student(object):...原创 2018-06-14 19:17:54 · 161 阅读 · 0 评论 -
python之迭代
迭代:就是循环遍历的一种说法在c语言中是通过下标来进行迭代的,而python的迭代只要是对于可迭代对象的都可以进行,比如dic、list、字符串等在dic中,迭代出来的是key,比如d={‘tim’,’mary’,’john’}for key in d: print(key)当然了value也是可以获取的for value in d.value():如果同时要获取key和value,则可以用...原创 2018-06-12 23:34:05 · 184 阅读 · 0 评论 -
python之列表生成式
列表生成式:能够用来创建list的生成式比如想要生成类似[1*1,2*2,3*3,…..100*100]的这种list时可以用[x * x for x in range(1,11)]这样就能生成,除此之外,后面还能添加判断条件来筛选比如[x * x for x in range(1,11) if x%2=0] 这样就能筛选出仅有偶数的平方还能用多层循环来生成全排列[m+n for m in ‘...原创 2018-06-12 23:34:30 · 284 阅读 · 0 评论 -
python之生成器
生成器:就是未循环完的列表,这是为了节约电脑内存,设立的一种一边循环一边计算的机制。创建的方法也是很简单,其中一种就是把列表生成式的[]改成()就可以了而调用的时候也一般不用麻烦的next()的方法,而是用for循环来遍历比如:g= (x*x for x in range(10))for n in g: print(n)这样就能遍历出所有的生成器中的元素另一种生成器的方法:如果函数中包含有y...原创 2018-06-12 23:35:20 · 183 阅读 · 0 评论 -
python之迭代器
可以进行for循环的数据类型包括以下两种:1. 集合数据类型比如list,tuple,dict,str等2. 另一种是生成器 而他们都是可迭代对象,称为IterableIsinstandce()可以用来判断对象是否为可迭代对象>>> from collections import Iterable>>> isinstance([], It...原创 2018-06-12 23:36:12 · 157 阅读 · 0 评论 -
python之高阶函数map和reduce
map()函数接受两个参数,一个是函数,另一个是一个可迭代对象,而map的作用就是将可迭代对象中的元素一个个的放进函数中运算并将结果作为新的迭代器返回,要注意返回的迭代器是惰性计算,要进行转换。比如现在一个函数为f(x)=x*x,作用在一个list[1,2,3.4,5.,6,7,8,9,]上,map实现如下def f(x): return x*xr=map(f, [1,2,3.4,5.,6,7...原创 2018-06-12 23:37:15 · 263 阅读 · 0 评论 -
python之高阶函数filter
filter函数,正如它的名字一样,这个函数用于筛选序列,它接受两个参数,一个是函数一个是序列,但是这里的函数返回的结果是布尔型,即用来判断对错,接着根据函数给出的true以及false决定结果的序列中是保留还是丢弃该函数,比如删除一个list中的偶数只留下奇数,def is_odd(n): return n%2==1r=list(filter(is_odd,[1,2,3,4,5,6])...原创 2018-06-12 23:37:47 · 252 阅读 · 0 评论 -
python之高阶函数sorted
sorted()就是排序函数,在python中是用来对可迭代对象进行排序的。比如:r=sorted([1,6,2,4,7,5,8])print(r)除了基本的排序外,sorted函数还能接受排序方式的设置在python是根据key函数来实现自定义排序的,比如按照绝对值排序:r=sorted([1,-6,-2,4,7,5,8],key=abs,reverse=True)print(r)这里面...原创 2018-06-12 23:38:50 · 334 阅读 · 0 评论 -
python之返回函数
高阶函数中,除了可以接受函数作为参数参与运算,同时,还能够将函数作为结果值返回比如def lazy_sum(*args): def sum(): ax=0 for x in args: ax=ax+x return ax return sumr=lazy_sum(1,2,3,4,5)print(r)注:变...原创 2018-06-12 23:39:22 · 692 阅读 · 0 评论 -
python之匿名函数
在某些传入函数的时候,我们不需要显式的定义函数,我们可以设置一个匿名函数来白哦是比如map函数中,参数为一个函数以及一个可迭代对象我们可以这样r=map(lambda x:x*x,[1,2,3,4,5,6,7,8,9])p=list(r)print(p)如上,我们在map中没有使用已定义好的函数,而是使用了一个lambda的方法在这里,lambda表示匿名函数,后面的x表示函数参数但是这个匿...原创 2018-06-12 23:39:57 · 197 阅读 · 0 评论 -
python之内存读写
Python中的读写不一定只是文件,还有可能是内存,所以下面实在内存中的读写操作from io import StringIOf=StringIO()f.write('everything')f.write('is')f.write('possible')print(f.getvalue())在内存中新建一个StringIO,然后进行写入获取的时候用的是getvalue()函数而读取...原创 2018-06-21 17:29:40 · 10191 阅读 · 0 评论 -
python之操作文件和目录
Python中的操作文件,目录之类的操作,使用的是os模块中调用操作系统提供的接口函数比如Import osprint(os.name)这个函数可以显示操作系统的类型,如果返回的是posix则是除win之外的系统,如果是nt泽为win系统再比如:os.environ获取到的是操作系统中定义的环境变量如果要进一步获取某个值可以用os.environ.get(‘ket’)来获取 除此之外,操作文件和目...原创 2018-06-21 17:31:42 · 312 阅读 · 0 评论 -
python之序列化
序列化: 把变量从内存中变成可存储或者传输的过程称之为序列化。反序列化:把变量内容从序列化的对象重新读到内存里序列化方法:>>> import pickle>>> d = dict(name='Bob', age=20, score=88)>>> pickle.dumps(d)b'\x80\x03}q\x00(X\x03\x00\x00\...原创 2018-06-21 17:32:50 · 119 阅读 · 0 评论 -
python之json数据
JSON类型Python类型{}dict[]list"string"str1234.56int或floattrue/falseTrue/FalsenullNone Python对象转化为json对象:>>> import json>>> d = dict(name='Bob', age=20, score=88)>>> json.dumps...原创 2018-06-21 17:33:38 · 226 阅读 · 0 评论 -
python之作用域
跟很多编程语言一样,python中也有作用域的使用函数和变量分有公开的以及非公开的正常的函数和变量名是公开的(public):比如abc,x123,PI类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,我们自己的变量一般不用这种变量名类似_xxx和__xxx的函数和变量就是非公开的private,是不应该被直接引用的,但是这里的private函数说是不应该被直接引用而不是不能...原创 2018-06-14 19:16:15 · 303 阅读 · 0 评论 -
python之函数
函数类似功能方法比如求绝对值的方法abs()同时可以输入help(abs)来查看abs的帮助信息注意点:函数名字是否用对,函数参数是否用对以下为常见数据类型转换函数:int()float()str()bool()同样的在python中函数可以引用,比如用变量名指向函数,则这个变量就具有和函数一样功能的作用。比如:a=absa(-1)此时a就是一个求绝对值的函数 自定义函数:格式:def my_a...原创 2018-06-09 10:15:43 · 149 阅读 · 0 评论