还剩26页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
1你好打开新窗口,输入##!/usr/bin/python#coding:utf8H你好,%sl=input Inputyour name:”print/s-%si知识点*某字符串”)函数:显示“某字符串,并等待用户输入.input/*函数:如何打印.print*如何应用中文*如何用多行注释2字符串和数字但有趣的是,在里我们会理想当然的将字符串和数字连接,因为是动态语言javascript嘛.但在里有点诡异,如下Python#!/usr/bin/pythona=2n nb=testc=a+b运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换n noChild.add strlprint oChild.dataprint oChild.plus2,3»11知识点类似的参数*self:Java this11包机制每一个文件称为一个之间可以互相导入.请参看以下例子.py module,module#a.pydef add_funca,b:return a+b#b.pyfrom aimport add_func#Also canbe:import aprintImport add_func frommodule a”Hprint Result of1plus2is:Hprint add_funcl,2#If usingimport a”,then hereshould bena.add_func可以定义在包里面定义包的方式稍微有点古怪,假设我们有一个module.Python parent文件夹,该文件夹有一个子文件夹中有一个如何让知child.child modul.a.p..Python道这个文件层次结构很简单,每个目录都放一个名为的文件.该文件内容可以为Jnit_.p.空.这个层次结构如下所示parent-_init_.py—child--_init_.py--a.pyb.py那么如何找到我们定义的在标准包中,属性记录了Python modulesys pathPython的包路径.你可以将之打印出来import sysprintsys.path通常我们可以将的包路径放到环境变量中,该环境变量会自动module PYTHONPATH添加到属性.另一种方便的方法是编程中直接指定我们的路径到sys.path module中sys.pathimport sysimport os1sys.path.app endos.getcwd+\\parent\\child printsys.pathfrom aimport add_funcprint sys.pathprint Importadd_func frommodule aHprintResultof1plus2is:print add_funcl,2知识点•如何定义模块和包•如何将模块路径添加到系统路径,以便找到它们python•如何得到当前路径12内建帮助手册对比的突出进步是内建机制,程序员可以通过阅读C++,Java Javadoc了解函数用法也内建了一些方便函数以便程序员参考.Javadoc.Python函数.查看某个类/对象的方法,如果有某个方法想不起来,请敲在里,•dir dir.idle试.dirlist.[历文件夹和文件函数,详细的类/对象介绍.在里.试help idle.helplistimpor.osimpor.os.path里包含大多数文件访问的函数,所以要先引入它们..os,os.path.请按照你的实际情况修改这个路.rootdir....d:/downloa..fo.parent,dirnames,.i.os.walkrootdir:..case
1..fo.dirname.i.dirnames:.prin...parent is....parent.prin...dirname is....dirname..case.・fo..i..prin...parent is....parent.prin...with fullpath....os.path.joinfparent,.知识点:返回一个三元组.其中是所有文件夹名字(不包含路径),是*os.walk dirnames所有文件的名字(不包含路径)表示父目录..parent演示了如何遍历所有目录.*easel演示了如何遍历所有文件.*case2):将形如和变成H*os.path.joinfdirname,“/a/b/c”d.java”/a/b/c/d.java.2分割路径和文件名impor.os.path.常用函数有三种:分隔路径,找出文件名.找出盘符系统,找出文件的扩展windows名..根据你机器的实际情况修改下面参数.・spat..D:/download/repository.
7...case
2.・・drv,lef os.path.splitdrivespath;prin...driver is...drvprin...left is...left・case
3.f,ex..os.path.splitextspath;prin...f is...fprin...ext is...ext»知识点这三个函数都返回二元组.分隔目录和文件名*easel分隔盘符和文件名*case2分隔文件和扩展名*case311总结:5个函数•os.walkspath•os.path.split spath•os.path.splitdrivespath•os.path.splitextspath•os.path.joinfpath1,path23复制文件impor.shutilimpor.osimpor.os.pathsr...d:\\download\\test\\m..ds...d:\\download\\test\\m..测试文件夹dst…d:/download/test/.tx..dir..os.path.dirnamesrcprin...dirl%...dirl
1.os.path.existssrc.=.False:・os makedirsdir1f..opensrc....fl.write..line a\..fl.write..line b\..fl.closeQ shutil.copy,dstshutil.copy,dst2f..opendst....fo.line.i.f2:.prin.linef
2.close.测试复制文件夹.tr.:srcDi...d:/download/tes..・dstDi..d:/download/test....如果已经存在,那么方法会报错.dstDir shutil.copytree.・这也意味着你不能直接用作为目标路径.d:shutil.copytreefsrcDir,dstDirexcep.Exception as err:.prin.err知识点如何复制文件*shutil.copyfile:如何判断文件夹是否存在*os.path.exists:如何复制目录树*shutil.copytree:11■总结个函数4•os.path.dirnamepath•os.path.exists path•shutil.copy,dst•shutil.copytreefsrcDir,dstDir4实战:文件备份小程序importosimport shutilimport datetime作用将目录备份到其他路径实际效果假设给定目录7media/data/programmer备份路径,/project/python,7home/diegoyun/backup/则会将目录备份到备份路径下,形如:python/home/diegoyun/backup/yyyymmddHHMMSS/python/xxx/yyy/z用法:更改这两个参数.备份目的地.backdir:想要备份的文件夹.copydirs:def mainLogicf:n#add dirsyou wantto copybackdir=d:\\test”print backdircopydirs=[];copydirs.appendd:\\temp;#copydirs.appended:\\test”printCopying files===================start=datetime.datetime.now#gen adata folderfor backupn nbackdir=os.path.joinbackdir start.strftime%Y-%m-%d#n nprint backdir is:+backdirkc=0for din copydirs:kc=kc+copy Files dbackdirend=datetime,datetime.nowprintFinished!===================printTotal files:+strkcprintElapsed time:”+strend-start.seconds+“seconds”def copyFilescopydir,backdir:prefix=getPathPrefixcopydirH n#print prefix is:+prefixi=0for dirpath,dirnames,in os.walkcopydir:for namein:oldpath=o s.path.j oindirp ath,nam enewpath=omitPrefixfdirpath,prefixHprintbackdir is:+backdir nnewpath=os.path.joinbackdir,newpath printnewpath is:”+newpath・if os.path.existsnewpath!=True:os makedirsnewpathnewpath=os.path,joinfnewpath,nameH nprintFrom:+oldpath+”to:+newpath shutil.copyi=i+1return idefgetPathPrefixfullpath:#Giving/media/data/programmer/project/,get theprefix#/media/data/programmer/1=fullpath.split os.path.s ep,u,#printstrl[-l]==if1[-1]==:tmp=1[-2]else:tmp=1[-1]return fullpath[0:lenfullpath-lentmp-1]def omitPrefixfullpath,prefix:#Giving/media/data/programmer/project/python/tutotial/,#and prefixis Giving/media/data/programmer/project/,#returnpath aspython/tutotial/return fullpath[lenprefix+1:]mainLogic#!/usr/bin/python#运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换a=2nnb=testc=stra+bn nd=lllle=a+intdn#How toprint multiplyvalues print c is%s,e is%i%c,e111知识点*用和函数将字符串和数字进行转换int str*打印以#开头,而不是习惯的//*打印多个参数的方式!fI3列表#!/usr/bin/python#coding:utf8#列表类似的数组,方便易用Javascript#定义元组,,;fword=[a7b7c7d7e f7g]#如何通过索引访问元组里的元素a=word
[2]n Hprinta is:+an nb=word[l:3]printb is:printb#index1and2elements of word.c=word[:2]Hprint cis:printc#index0and1elements of word.d=word[0:]nprint dis:print d#All elements of word.#元组可以合并e=word[:2]+word[2:]n Hprinte is:print e#All elements of word.f=word[-l]nprintf is:”print f#The lastelements of word.g=word[-4:-2]print g is:print g#index3and4elements of word.h=word[-2:]nprint his:print h#The lasttwo elements.i=word[:-2]nprint i is:print i#Everything exceptthe lasttwo charactersl=lenwordnprint Lengthofwordis:+strl1print Addsnew elementword.app endhprint word#删除元素del word
[0]print worddelword[l:3]print word111知识点*列表长度是动态的,可任意添加删除元素.*用索引可以很方便访问元素,甚至返回一个子列表*更多方法请参考的文档Python4字典#!/usr/bin/python,,f,,,x={a:aaa/b:bbb/c:12}print x[a[,,print x[b]「print xc1for keyin x:Hprint Keyis%s andvalue is%s%key,x[key]11»知识点*将他当的来用即可.Java Map1115字符串比起处理字符串的方式实在太让人感动了.把字符串当列表来用吧.C/C++,Python#!/usr/bin/pythonn nword=abcdefga=word
[2]n nprinta is:+ab=word[l:3]n nprintb is:+b#index1and2elements ofword.c=word[:2]Hprint cis:+c#index0and1elements ofword.d=word[0:]nprint dis:+d#All elementsofword.e=word[:2]+word[2:]n Hprinte is:+e#All elementsofword.f=word[-l]n Mprintf is:+f#The lastelementsofword.g=word[-4:-2]n nprintgis:+g#index3and4elementsofword.h=word[-2:]nprint his:+h#The lasttwo elements.i=word[:-2]n nprintiis:+i#Everything exceptthe lasttwo charactersl=lenwordprint Lengthofwordis:+strl中文和英文的字符串长度是否一样?#!/usr/bin/python#coding:utf8输入你的中文名,按回车继续;s=input你的名字是print+sl=lens你中文名字的长度是:“print+strl知识点・类似在里所有字符串都是所以长度一致.Java,python3unicode,6条件和循环语句#!/usr/bin/python条件和循环语句#n nx=intinput Pleaseenter aninteger:if x0:x=01print Negativechanged tozero elifx==0:print Zero”else:n nprintMore#Loops List「「a=[cat windowdefenestrate]for xin a:print x,lenx知识点#*条件和循环语句#*如何得到控制台输入#7函数#!/usr/bin/python#coding:utf8def suma,b:return a+bfunc=sumr=func5,6print r提供默认值#def adda,b=2:return a+br=addlprint rr=addl,5print r一个好用的函数#!/usr/bin/python#coding:utf8#The rangeffunctiona=range1,10for i in a:print ia=range-2,-l1,-3#The3rd parameterstands forstep foriina:print i知识点•不用来控制程序结构,他强迫你用缩进来写程序,使代码清晰.Pytho.g•定义函数方便简单•方便好用的函数range8异常处理n#!/usr/bin/python s=input Inputyour age:if s==n1raise ExceptionInput mustno beempty.try:i=intsexcept Exceptionaserr:print errnnfinally:#Clean upaction printGoodbye!9文件处理对比的文本处理再次让人感动Java,python#!/usr/bin/pythonH nspath=D:/download/baa.txtnf=openspath/w#Opens writing.Creates thistexist.f.writefFirst linel.\n”H nf.writelines Firstline
2.f.closefHf=openspath/r#Opens readingforline inf:每一行的数据是%print:s%linef.closef知识点的参数:表示读,写数据,在写之前先清空文件内容,打开并附加内容.•open rw a•打开文件之后记得关闭10类和继承class Base:def—init_self:self,data=[]def addself,x:s elf.data.app endxdef addtwiceself,x:self,add xself,add x#Child extendsBaseclass ChildBase:def plusself,a,b:return a+boChild=Child。