Python内部培训PPT学习课件_第1页
Python内部培训PPT学习课件_第2页
Python内部培训PPT学习课件_第3页
Python内部培训PPT学习课件_第4页
Python内部培训PPT学习课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python内部培训,1,Python简介,快速、高效的开发语言胶水语言生态链完善广泛用于科学计算、数据挖掘等领域,2,2020/5/2,本讲义约定使用Python2.x版本3.x版本由于库没有跟上,暂时不推荐使用,3,2020/5/2,语法特色,动态语言特性可在运行时改变对象本身(属性和方法等)基于C/C+和JAVA,但有很大区别缩进方式,建议使用空格,不要用TAB多个语句在一行使用;分隔注释符是#,多行使用docstring()变量无需类型定义可进行函数式编程FPPython3.x的变迁,4,2020/5/2,编程规范,PEP8编码规范GooglePython编码规范GooglePythonPEP8编码规范,5,2020/5/2,开发环境,PyCharm(支持PEP8语法规范、跨平台、远程调试、上传)IPythonVIM主要在linux下使用其它编辑器UE,notepad+,editplus,工欲善其,事必先利其器,6,2020/5/2,开发环境,7,2020/5/2,PyCharm调试,Ctrl+Alt+S-属性配置Ctrl+Shift+Alt+L-格式化文件PPE8Ctrl+B-查看对象Ctrl+L-查找Ctrl+N-切换类Ctrl+Shift+N-切换文件Shift+F9/F10-Debug/Run单击行-设置断点,工欲善其,事必先利其器,8,2020/5/2,PDB调试,Pythonmpdbxxx.pyb-设置断点(行,函数名)s-stepovern-nextc-continuer-runL-显示代码Exit(),工欲善其,事必先利其器,9,2020/5/2,字符编码,Python2.x默认的是OS的本地编码Python3.x是unicode内部编码.py文件第一行:#coding=utf-8,不指定编码时,文件中包含非ASCII字符会报错s1=中文1s2=u中文2printunicode(s1,utf-8).encode(gbk)prints2.encode(gbk)printtype(unicode(s1,utf-8),type(s2),type(s2.encode(gbk),10,2020/5/2,Helloworld,表达式2+33+(7*4)3*5Hello+World变量赋值a=4lst=1,2,abc,4,5,.join(lst)1,2,abc,4,5,13,2020/5/2,列表list,赋值a=2,3,4#Alistofintegerb=2,7,3.5,“Hello”c=d=2,a,b#嵌套列表e=a+b#Jointwolists操作x=a1#Get2ndelement(0isfirst)y=b1:3#Returnasub-listz=d102#Nestedlistsb0=42#Changeanelementprintsum(a)#=9x=a.pop(0)#pop第一个数据,14,2020/5/2,tuple,赋值f=(2,3,4,5)#Atupleofintegersg=(,)#Anemptytupleh=(2,3,4,(10,11,12)#Atuplecontainingmixedobjects操作x=f1#Elementaccess.x=3y=f1:3#Slices.y=(3,4)z=h11#Nesting.z=4特色与list类似,最大的不同tuple是一种只读且不可变更的数据结构不可取代tuple中的任意一个元素,因为它是只读不可变更的,也不能进行像list一样的加法操作,15,2020/5/2,字典dict,赋值a=#Anemptydictionaryb=x:3,y:4#有点类似json格式c=uid:105,login:beazley,name:DavidBeazley操作u=cuid#Getanelementcshell=/bin/sh#Setanelementdict2=dict2.update(dict1)#使用dict1中的数据去更新dict2ifc.has_key(directory):#Checkforpresenceofanmemberd=cdirectoryelse:d=Noned=c.get(“directory”,None)#带默认值的方式,16,2020/5/2,集合set,set(“hello”,“world”,“of”,“words”,“of”,“world”)set(world,hello,words,of)如何删除重复数据Ls1=1,3,5,3,7,4,5Ls2=list(set(Ls1)可以使用&、|求两个set的交集、并集、补集、全集s1=set(1,2,3)s2=set(2,4)s1&s2#2s1|s2#1,2,3,4s1-s2#1,3s1s2#1,3,4,17,2020/5/2,Helloworld,ifelifelse语句:没有switch,有更高级的变通方式(dict字典方式)ifa=+:b=+elifa=-:b=-else:b=None布尔表达式and,or,notifb=aandbc):printnotexpr,valueisTrue,18,2020/5/2,循环,While.else语句whilea0:g=xx=y%xy=greturng,import语句importnumbersx,y=numbers.divide(42,5)n=numbers.gcd(7291823,5683)_import_()动态载入模块一个模块只载入一次实例会继承新加载的模块,23,2020/5/2,异常处理,try语句try:f=open(“foo“,”r”)exceptIOError:printCouldntopenfoo.Sorry.“FinallyBaseException,e:logging.exception(e)raise语句deffactorial(n):ifnfactorial(-1)Traceback(innermostlast):File,line1,in?File,line3,infactorialValueError:Expectednon-negativenumber,24,2020/5/2,文件操作,open()函数f=open(foo,w)#Openafileforwritingg=open(bar,r)#Openafileforreading文件的读取/写入f.write(HelloWorld)buff=g.read()#Readalldataline=g.readline()#Readasinglelinelines=g.readlines()#Readdataasalistoflines异常处理try:f=open(“foo”,”w”)exception:XXX,25,2020/5/2,文件操作,With语句Withopen(foo)asfile:data=file.read()大文件yield,26,2020/5/2,指针?引用?,Python里面没有指针所有都是对象对象之间都是引用(引用计数方式)常用的对象都有cache默认是浅拷贝,深拷贝代码importcopyls1=1,”test”,(3.4,7),“key”:1,“comment”:”yourcomment”ls2=copy.deepcopy(ls1),27,2020/5/2,正则表达式,导入模块:importrep=pile(rab*,re.IGNORECASE)p=pile(a-z+),28,2020/5/2,map/reduce,云计算的核心算法Map是将一个大任务拆分为很多个小任务Reduce则将每个小任务的计算结果进行收集和汇总Filter过滤,29,2020/5/2,Python并行,多线程,30,2020/5/2,Python并行,多线程(map),31,2020/5/2,Python并行,多进程同步模式(apply_async)异步模式(apply),32,2020/5/2,Python并行,多进程(map),Map为异步模式,33,2020/5/2,单元测试,unittest模块中的TestCase类代表测试用例,34,2020/5/2,性能优化,Python的开发效率很高Python的执行效率很低,比C+和JAVA都慢循环/函数调用等很消耗资源数据结构的性能很高,目前可以认为是优化到极致优化方式:用timeit分析之后优化对应代码NUMPY与IO优化使用C模块来替换业务热点部分地方可以使用map来替代forin循环,35,2020/5/2,性能优化,优化实例,未优化版本:17.93秒,CTYPE优化版本:0.29秒,Numpy+IO优化版本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论