1、实用参考python经典实例doc1输出你好#打开新窗口,输入:#!/usr/bin/python#-G-coding:utf8-G-s1=input(Inputyourname:)print(你好,%s%s1)知识点:Ginput(某字符串)函数:显示某字符串,并等待用户输入.Gprint()函数:如何打印.G如何应用中文G如何用多行注释2输出字符串和数字但有趣的是,在javascript里我们会理想当然的将字符串和数字连接,因为是动态语言嘛.但在Python里有点诡异,如下:#!/usr/bin/pythona=2b=testc=a+b运行这行程序会出错,提示你字符串和数字不能连接,于是只
2、好用内置函数进行转换#!/usr/bin/python#运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换a=2b=testc=str(a)+bd=1111e=a+int(d)#Howtoprintmultiplyvaluesprint(cis%s,eis%i%(c,e)知识点:G用int和str函数将字符串和数字进行转换G打印以#开头,而不是习惯的/G打印多个参数的方式3列表#!/usr/bin/python#-G-coding:utf8-G-#列表类似Javascript的数组,方便易用#定义元组word=a,b,c,d,e,f,g#如何通过索引访问元组里的元素a=
3、word2print(ais:+a)b=word1:3print(bis:)print(b)#indeG1and2elementsofword.c=word:2print(cis:)print(c)#indeG0and1elementsofword.d=word0:print(dis:)print(d)#Allelementsofword.#元组可以合并e=word:2+word2:print(eis:)print(e)#Allelementsofword.f=word-1print(fis:)print(f)#Thelastelementsofword.g=word-4:-2print(gi
4、s:)print(g)#indeG3and4elementsofword.h=word-2:print(his:)print(h)#Thelasttwoelements.i=word:-2print(iis:)print(i)#EverythingeGceptthelasttwocharactersl=len(word)print(Lengthofwordis:+str(l)print(Addsnewelement)word.append(h)print(word)#删除元素delword0print(word)delword1:3print(word)知识点:G列表长度是动态的,可任意添加删
5、除元素.G用索引可以很方便访问元素,甚至返回一个子列表G更多方法请参考Python的文档4字典#!/usr/bin/pythonG=a:aaa,b:bbb,c:12print(Ga)print(Gb)print(Gc)forkeyinG:print(Keyis%sandvalueis%s%(key,Gkey)知识点:G将他当Java的Map来用即可.5字符串比起C/C+,Python处理字符串的方式实在太让人感动了.把字符串当列表来用吧.#!/usr/bin/pythonword=abcdefga=word2print(ais:+a)b=word1:3print(bis:+b)#indeG1a
6、nd2elementsofword.c=word:2print(cis:+c)#indeG0and1elementsofword.d=word0:print(dis:+d)#Allelementsofword.e=word:2+word2:print(eis:+e)#Allelementsofword.f=word-1print(fis:+f)#Thelastelementsofword.g=word-4:-2print(gis:+g)#indeG3and4elementsofword.h=word-2:print(his:+h)#Thelasttwoelements.i=word:-2pri
7、nt(iis:+i)#EverythingeGceptthelasttwocharactersl=len(word)print(Lengthofwordis:+str(l)中文和英文的字符串长度是否一样?#!/usr/bin/python#-G-coding:utf8-G-s=input(输入你的中文名,按回车继续);print(你的名字是:+s)l=len(s)print(你中文名字的长度是:+str(l)知识点: 类似Java,在python3里所有字符串都是unicode,所以长度一致.6条件和循环语句#!/usr/bin/python#条件和循环语句G=int(input(Please
8、enteraninteger:)ifG0:G=0print(Negativechangedtozero)elifG=0:print(Zero)else:print(More)#LoopsLista=cat,window,defenestrateforGina:print(G,len(G)#知识点:#G条件和循环语句#G如何得到控制台输入7函数#!/usr/bin/python#-G-coding:utf8-G-defsum(a,b):returna+bfunc=sumr=func(5,6)print(r)#提供默认值defadd(a,b=2):returna+br=add(1)print(r)
9、r=add(1,5)print(r)一个好用的函数#!/usr/bin/python#-G-coding:utf8-G-#Therange()functiona=range(1,10)foriina:print(i)a=range(-2,-11,-3)#The3rdparameterstandsforstepforiina:print(i)知识点: Python不用来控制程序结构,他强迫你用缩进来写程序,使代码清晰. 定义函数方便简单 方便好用的range函数8异常处理#!/usr/bin/pythons=input(Inputyourage:)ifs=:raiseEGception(Inpu
10、tmustnobeempty.)try:i=int(s)eGceptEGceptionaserr:print(err)finally:#Cleanupactionprint(Goodbye!)9文件处理对比Java,python的文本处理再次让人感动#!/usr/bin/pythonspath=D:/download/baa.tGtf=open(spath,w)#Opensfileforwriting.CreatesthisfiledoesnteGist.f.write(Firstline1.n)f.writelines(Firstline2.)f.close()f=open(spath,r)
11、#Opensfileforreadingforlineinf:print(每一行的数据是:%s%line)f.close()知识点: open的参数:r表示读,w写数据,在写之前先清空文件内容,a打开并附加内容. 打开文件之后记得关闭10类和继承classBase:def_init_(self):self.data=defadd(self,G):self.data.append(G)defaddtwice(self,G):self.add(G)self.add(G)#ChildeGtendsBaseclassChild(Base):defplus(self,a,b):returna+boChi
12、ld=Child()oChild.add(str1)print(oChild.data)print(oChild.plus(2,3)知识点:Gself:类似Java的this参数11包机制每一个.py文件称为一个module,module之间可以互相导入.请参看以下例子:#a.pydefadd_func(a,b):returna+b#b.pyfromaimportadd_func#Alsocanbe:importaprint(Importadd_funcfrommodulea)print(Resultof1plus2is:)print(add_func(1,2)#Ifusingimporta,
13、thenhereshouldbea.add_funcmodule可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个modulea.py.如何让Python知道这个文件层次结构?很简单,每个目录都放一个名为_init_.py的文件.该文件内容可以为空.这个层次结构如下所示:parent-_init_.py-child-_init_.py-a.pyb.py那么Python如何找到我们定义的module?在标准包sys中,path属性记录了Python的包路径.你可以将之打印出来:importsysprint
14、(sys.path)通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境变量会自动添加到sys.path属性.另一种方便的方法是编程中直接指定我们的module路径到sys.path中:importsysimportossys.path.append(os.getcwd()+parentchild)print(sys.path)fromaimportadd_funcprint(sys.path)print(Importadd_funcfrommodulea)print(Resultof1plus2is:)print(add_func(1,2)知识点: 如何定义模块和包
15、如何将模块路径添加到系统路径,以便python找到它们 如何得到当前路径12内建帮助手册对比C+,Java的突出进步是内建Javadoc机制,程序员可以通过阅读Javadoc了解函数用法.Python也内建了一些方便函数以便程序员参考. dir函数:查看某个类/对象的方法.如果有某个方法想不起来,请敲dir.在idle里,试试dir(list) help函数:详细的类/对象介绍.在idle里,试试help(list)1遍历文件夹和文件importosimportos.path#os,os.path里包含大多数文件访问的函数,所以要先引入它们.#请按照你的实际情况修改这个路径rootdir=d:
16、/downloadforparent,dirnames,filenamesinos.walk(rootdir):#case1:fordirnameindirnames:print(parentis:+parent)print(dirnameis:+dirname)#case2forfilenameinfilenames:print(parentis:+parent)print(filenamewithfullpath:+os.path.join(parent,filename)知识点:Gos.walk返回一个三元组.其中dirnames是所有文件夹名字(不包含路径),filenames是所有文
17、件的名字(不包含路径).parent表示父目录.Gcase1演示了如何遍历所有目录.Gcase2演示了如何遍历所有文件.Gos.path.join(dirname,filename):将形如/a/b/c和d.java变成/a/b/c/d.java.2分割路径和文件名importos.path#常用函数有三种:分隔路径,找出文件名.找出盘符(windows系统),找出文件的扩展名.#根据你机器的实际情况修改下面参数.spath=D:/download/repository.7z#case1:p,f=os.path.split(spath);print(diris:+p)print(fileis:
18、+f)#case2:drv,left=os.path.splitdrive(spath);print(driveris:+drv)print(leftis:+left)#case3:f,eGt=os.path.spliteGt(spath);print(fis:+f)print(eGtis:+eGt)知识点:这三个函数都返回二元组.Gcase1分隔目录和文件名Gcase2分隔盘符和文件名Gcase3分隔文件和扩展名总结:5个函数 os.walk(spath) os.path.split(spath) os.path.splitdrive(spath) os.path.spliteGt(spat
19、h) os.path.join(path1,path2)3复制文件importshutilimportosimportos.pathsrc=d:downloadtestmyfile1.tGtdst=d:downloadtestmyfile2.tGtdst2=d:/download/test/测试文件夹.tGtdir1=os.path.dirname(src)print(dir1%s%dir1)if(os.path.eGists(src)=False):os.makedirs(dir1)f1=open(src,w)f1.write(linean)f1.write(linebn)f1.close(
20、)shutil.copyfile(src,dst)shutil.copyfile(src,dst2)f2=open(dst,r)forlineinf2:print(line)f2.close()#测试复制文件夹树try:srcDir=d:/download/testdstDir=d:/download/test2#如果dstDir已经存在,那么shutil.copytree方法会报错!#这也意味着你不能直接用d:作为目标路径.shutil.copytree(srcDir,dstDir)eGceptEGceptionaserr:print(err)知识点:Gshutil.copyfile:如何复制文件Gos.path.eGists:如何判断文件夹是否存在Gshutil.copytree:如何复制目录树总结:4个函数 os.path.dirname(path) os.path.eGists(path) shutil.copyfile(src,dst) shutil.copytree(srcDir,dstDir)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1