欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    PYTHON知识点汇总.pdf

    • 资源ID:74141709       资源大小:773.69KB        全文页数:12页
    • 资源格式: PDF        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    PYTHON知识点汇总.pdf

    print 语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出:print The quick brown fox,jumps over,the lazy dog在 Python 中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。如果字符串本身包含 怎么办?比如我们要表示字符串?Im OK?,这时,可以用 括起来表示。类似的,如果字符串包含,我们就可以用 括起来表示:如果字符串既包含 又包含怎么办?这个时候,就需要对字符串的某些特殊字符进行“转义”,Python 字符串用 进行转义。n 表示换行t表示一个制表符表示 字符本身如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀?r,表示这是一个?raw?字符串,里面的字符就不需要转义了。如,r(_)/(_)/。如果要表示多行字符串,可以用.表示如果中文字符串在 Python 环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释#-*-coding:utf-8-*-print u中文在 Python 中,布尔类型还可以与其他数据类型做 and、or和 not运算直接用?把 list 的所有元素都括起来,就是一个 list 对象。通常,我们会把 list 赋值给一个变量,这样,就可以通过变量来引用 list索引从 0 开始,也就是说,第一个元素的索引是 0,第二个元素的索引是 1,以此类推。因此,要打印第一名同学的名字,用 L0添加?list的?append()?方法或者 insert()方法定位删除()?对 list 中的某一个索引赋值,就可以直接用新的元素替换掉原来的元素,list 包含的元素个数保持不变。缩进请严格按照 Python 的习惯写法:4 个空格,不要使用 Tab,更不要混合 Tab 和空格,否则很容易造成因为缩进引起的语法错误。if age=18:要避免嵌套结构的 if.else.,我们可以用?if.多个 elif.else.的结构,一次写完所有的规则奇数加和 for a in L:sum+=ax+=2偶数不要 if x%2=0:Continuedict的第一个特点是查找速度快,无论的第一个特点是查找速度快,无论 dict有有 10 个元素还是个元素还是 10 万个元素,查找速度都一样万个元素,查找速度都一样。而 list 的查找速度随着元素增加而逐渐下降。d=(x)可以取到 d 中 key 后面的 value个数len(s)s=set(Adam,95),(Lisa,85),(Bart,59)for name,score in s:print name,:,score():()比较函数 cmp(x,y)如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数:def fn(*args):print args可变参数的名字前面有个?*?号,我们可以传入 0 个、1 个或多个参数给可变参数(Li)向 r添加对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python 提供了切片(Slice)操作符,能大大简化这种操作。对应上面的问题,取前 3 个元素,用一行代码就可以完成切片:L0:3Adam,Lisa,Bart只用一个?:?,表示从头到尾:L:切片操作还可以指定第三个参数:L:2Adam,Bart第三个参数表示每 N 个取一个,上面的 L:2 会每两个元素取出一个来,也就是隔一个取一个。print L4:5-10:先获得 5 的倍数,再取后 10 个首字母大写 def firstCharUpper(s):return s:1.upper()+s1:range(1,101)方法是使用?enumerate()函数函数:L=Adam,Lisa,Bart,Paul for index,name in enumerate(L):.print index,-,name.0-Adam1-Lisa2-Bart3-Pauldict对象有一个?values()方法方法,这个方法把 dict转换成一个包含所有 value的 list,这样,我们迭代的就是 dict的每一个 value:d=Adam:95,Lisa:85,Bart:59 print()#85,95,59for v in d.(iter)values():print v#85#95#59items()方法把 dict对象转换成了包含 tuple的 list,我们对这个 list 进行迭代,可以同时获得 key 和 valued=Adam:95,Lisa:85,Bart:59,Paul:74 n=0sum=for k,v in():sum=sum+vn+=1print k,:,vprint average,:,sum/nx*x for x in range(1,11)变量可以指向函数 f=abs根号import mathdef add(x,y,f):return f(x)+f(y)print add(25,9,map()是 Python 内置的高阶函数,它接收一个函数函数 f?和一个?list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。def format_name(s):return s:1.upper()+s1:.lower()print map(format_name,adam,LISA,barT)reduce()函数也是 Python 内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数一个函数 f,一个,一个 list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对 list 的每个元素反复调用函数 f,并返回最终结果值。reduce()还可以接收第还可以接收第 3 个可选参数,作为计算的初始值。个可选参数,作为计算的初始值。如果把初始值设为 100,计算:reduce(f,1,3,5,7,9,100)结果将变为 125,因为第一轮计算是:计算初始值和第一个元素:f(100,1),结果为 101。filter()函数是?Python?内置的另一个有用的高阶函数,filter()函数接收一个函数函数 f?和一个 list,这个函数?f?的作用是对每个元素进行判断,返回 True 或 False,filter()根据根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新 list。利用 filter(),可以完成很多有用的功能,例如,删除 None或者空字符串:def is_not_empty(s):return s and len()0filter(is_not_empty,test,None,str,END)根为整数 def is_sqr(x):return(x)%1=0升序 def cmp_ignore_case(s1,s2):if()():return 1elif()0,test,None,str,END)装饰器newfndef performance(f):def print_time(*args,*kw):print call+()in+(%Y-%m-%d,()return f(*args,*kw)return print_time装饰器有 decorator的情况下,再打印函数名:def log(f):def wrapper(*args,*kw):print call.return f(*args,*kw)return wrapperlogdef f2(x):passprintdef performance(unit):def fn(f):(f)def wrapper(*args,*kw):t0=()back=f(*args,*kw)t1=()t=(t1-t0)if unit=s else(t1-t0)*1000print call%s()in%s%s%,t,unit)return backreturn wrapperreturn fnint()函数还提供额外的 base 参数,默认值为 10。如果传入 base 参数,就可以做?N?进制的转换:int(12345,base=8)5349 int(12345,16)74565假设要转换大量的二进制字符串,每次都传入 int(x,base=2)非常麻烦,于是,我们想到,可以定义一个int2()的函数,默认把 base=2 传进去:def int2(x,base=2):return int(x,base)就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2:import functools int2=(int,base=2)import functoolssorted_ignore_case=(sorted,cmp=lambda a,b:cmp(),()print sorted_ignore_case(bob,about,Zoo,Credit)(2,from math import log利用 ImportError 错误,我们经常在 Python 中动态导入模块:try:from cStringIO import StringIOexcept ImportError:from StringIO import StringIOPython 已经改进了整数的除法运算,“/”除将得到浮点数,“10 class A(object)passa1=A()a2=A()1.判断某个对象是否是类的实例isinstance(a1,A)2.判断两个对象是否是否完全一致(意思为:判断两个变量引用的地址是否相同,如果相同,则两个变量实际引用为同一对象)用 is进行判断a3=a1print a1 is a33.判断两个对象中的内容是否相同用=进行判断print a1=a2按照关键词排序L1=p1,p2,p3L2=sorted(L1,key=lambda x:在定义 Person 类时,可以为 Person 类添加一个特殊的_init_()方法,当创建实例时,_init_()方法被自动调用,我们就能在此为每个实例都统一加上以下属性:class Person(object):def _init_(self,name,gender,birth):=name =gender =birth_init_()?方法的第一个参数必须是?self(也可以用别的名字,但建议使用习惯用法),后续参数则可以自由指定,和定义函数没有任何区别。解释器内部会将*kw 拆分成对应的 dict.setattr()方法接受 3 个参数:setattr(对象,属性,属性的值)setattr(self,k,v)相当于=v()历遍字典 kw 的所有 key 和 value,分别匹配 k,v*args 容纳任意变量的 list*kwargs 容纳任意 key,value的 dictclass Person(object):def _init_(self,name,gender,birth,*kw):=name=gender=birthfor k,v in():setattr(self,k,v)Python 对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(_),该属性就无法被外部访问。看例子:class Person(object):def _init_(self,name):=name =Mr =Studentclass Person(object):def _init_(self,name,score):=name=scorep=Person(Bob,59)printtry:printexcept AttributeError:print attributeerrorclass Person(object):count=0def _init_(self,name):=name+=1p1=Person(Bob)printp2=Person(Alice)printp3=Person(Tim)print如果已经定义了 Person 类,需要定义新的 Student 和 Teacher 类时,可以直接从 Person 类继承:class Person(object):def _init_(self,name,gender):=name =gender定义 Student 类时,只需要把额外的属性加上,例如score:class Student(Person):def _init_(self,name,gender,score):super(Student,self)._init_(name,gender)=score一定要用?super(Student,self)._init_(name,gender)?去初始化父类,否则,继承自?Person?的?Student?将没有?name?和?gender。函数 super(Student,self)将返回当前类继承的父类,即?Person?,然后调用_init_()方法,注意 self参数已在 super()中传入,在_init_()中将隐式传递,不需要写出(也不能写)。多重继承的继承链就不是一棵树了,它像这样:class A(object):def _init_(self,a):print init A.=aclass B(A):def _init_(self,a):super(B,self)._init_(a)print init B.class C(A):def _init_(self,a):super(C,self)._init_(a)print init C.class D(B,C):def _init_(self,a):super(D,self)._init_(a)print init D.Python 的网络服务器有TCPServer、UDPServer、UnixStreamServer、UnixDatagramServer,而服务器运行模式有?多进程多进程 ForkingMixin?和?多线程多线程 ThreadingMixin两种。要创建多进程模式的?TCPServer:class MyTCPServer(TCPServer,ForkingMixin)pass要创建多线程模式的?UDPServer:class MyUDPServer(UDPServer,ThreadingMixin):pass多重 class BStudent(Student,BasketballMixin):PassClassC(A,B)返回属性:对于实例变量,dir()返回所有实例属性,包括_class_ 这类有特殊意义的属性。注意到方法whoAmI也是?s?的一个属性。首先可以用?type()?函数获取变量的类型,它返回一个?Type?对象。dir()返回的属性是字符串列表,如果已知一个属性名称,要获取或者设置对象的属性,就需要用?getattr()?和?setattr()函数了对?int、str?等内置数据类型排序时,Python 的?sorted()?按照默认的比较函数?cmp?排序,但是,如果对一组?Student?类的实例排序时,就必须提供我们自己的特殊方法?_cmp_():class Student(object):def _init_(self,name,score):=name =score def _str_(self):return(%s:%s)%,_repr_=_str_ def _cmp_(self,s):if :return 1 else:return 0从低到高 return cmp,从高到底 return-cmp,如果一个类表现得像一个 list,要获取有多少个元素,就得用?len()?函数。a,b=b,a+b其实就是多个变量的赋值运算,先算=右边,再赋值给左边变量:0)a=0,b=11)a=b=1,b=a+b=12)a=b=1,b=a+b=23)a=b=2,b=a+b=34)a=b=3,b=a+b=55)a=b=5,b=a+b=86)a=b=8,b=a+b=13要表示有理数,可以用一个 Rational类来表示:class Rational(object):def _init_(self,p,q):=p =q求最大公约数def gcs(a,b,c=1):if 0=a%2 and 0=b%2:return gcs(a/2,b/2,c*2);s=abs(a-b)m=min(a,b)if s=m:return m*creturn gcs(s,m,c)如果要把?Rational?转为?int,应该使用:r=Rational(12,5)n=int(r)要让 int()函数正常工作,只需要实现特殊方法_int_():class Rational(object):def _init_(self,p,q):=p =q def _int_(self):return .%print My friend is%s.%friend斐波那契数列:class Fib(object):def _call_(self,num):L=0,1i=2for i in range(2,num):(sum(L-2:)return Lf=Fib()print f(10)()长度匹配 ma=(rA-Za-z,Aa)ma=(rA-Za-z*,Aasdfghjkkl)Info=(r d+,str1)+sum(int(x)for x in info)分割把 imooc 和后面分割开,一个:一个空格加|(或)

    注意事项

    本文(PYTHON知识点汇总.pdf)为本站会员(wj151****6093)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开