《2022年PYTHON入门经典实例 .pdf》由会员分享,可在线阅读,更多相关《2022年PYTHON入门经典实例 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、排行榜1 你好#打开新窗口,输入:#!/usr/bin/python#-*-coding:utf8-*-s1=input(Inputyourname:)print(你好,%s%s1)知识点:*input(某字符串)函数:显示 某字符串,并等待用户输入.*print()函数:如何打印.*如何应用中文*如何用多行注释2 字符串和数字但有趣的是,在 javascript里我们会理想当然的将字符串和数字连接,因为是动态语言嘛.但在 Python里有点诡异,如下:#!/usr/bin/pythona=2b=testc=a+b运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换#!/
2、usr/bin/python#运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换a=2b=testc=str(a)+bd=1111e=a+int(d)#Howto printmultiplyvaluesprint(c is%s,eis%i%(c,e)知识点:*用 int 和 str 函数将字符串和数字进行转换*打印以#开头,而不是习惯的/*打印多个参数的方式名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 12 页 -排行榜3 列表#!/usr/bin/python#-*-coding:utf8-*-#列表类似Javascript的数组,方便易用#定义元组w
3、ord=a,b,c,d,e,f,g#如何通过索引访问元组里的元素a=word2print(a is:+a)b=word1:3print(b is:)print(b)#index1 and2 elementsof word.c=word:2print(c is:)print(c)#index0 and1 elementsof word.d=word0:print(d is:)print(d)#All elementsof word.#元组可以合并e=word:2+word2:print(e is:)print(e)#All elementsof word.f=word-1print(f is:)
4、print(f)#Thelastelementsof word.g=word-4:-2print(g is:)print(g)#index3 and4 elementsof word.h=word-2:print(h is:)print(h)#The lasttwoelements.i=word:-2print(i is:)print(i)#Everythingexceptthelasttwocharactersl=len(word)print(Lengthof wordis:+str(l)print(Addsnewelement)word.append(h)print(word)#删除元素d
5、el word0print(word)del word1:3print(word)知识点:名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 12 页 -排行榜*列表长度是动态的,可任意添加删除元素.*用索引可以很方便访问元素,甚至返回一个子列表*更多方法请参考Python的文档4 字典#!/usr/bin/pythonx=a:aaa,b:bbb,c:12print(x a)print(x b)print(x c)forkeyin x:print(Keyis%sandvalueis%s%(key,xkey)知识点:*将他当 Java的 Map 来用即可.5 字符串比起 C/C+,Py
6、thon处理字符串的方式实在太让人感动了.把字符串当列表来用吧.#!/usr/bin/pythonword=abcdefga=word2print(a is:+a)b=word1:3print(b is:+b)#index1 and2 elementsof word.c=word:2print(c is:+c)#index0 and1 elementsof word.d=word0:print(d is:+d)#All elementsof word.e=word:2+word2:print(e is:+e)#All elementsof word.f=word-1print(f is:+f)
7、#The lastelementsof word.g=word-4:-2print(g is:+g)#index3 and4 elementsof word.h=word-2:print(h is:+h)#Thelasttwoelements.i=word:-2print(i is:+i)#Everythingexceptthelasttwocharacters名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 12 页 -排行榜l=len(word)print(Lengthof wordis:+str(l)中文和英文的字符串长度是否一样?#!/usr/bin/python#-*-c
8、oding:utf8-*-s=input(输入你的中文名,按回车继续 );print(你的名字是:+s)l=len(s)print(你中文名字的长度是:+str(l)知识点:类似 Java,在 python3里所有字符串都是unicode,所以长度一致.6 条件和循环语句#!/usr/bin/python#条件和循环语句x=int(input(Pleaseenteran integer:)if x0:x=0print(Negativechangedto zero)elif x=0:print(Zero)else:print(More)#LoopsLista=cat,window,defenes
9、trateforx in a:print(x,len(x)#知识点:#*条件和循环语句#*如何得到控制台输入7 函数名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 12 页 -排行榜#!/usr/bin/python#-*-coding:utf8-*-def sum(a,b):returna+bfunc=sumr=func(5,6)print(r)#提供默认值def add(a,b=2):returna+br=add(1)print(r)r=add(1,5)print(r)一个好用的函数#!/usr/bin/python#-*-coding:utf8-*-#The range()
10、functiona=range(1,10)fori in a:print(i)a=range(-2,-11,-3)#The3rdparameterstandsforstepfori in a:print(i)知识点:Python不用 来控制程序结构,他强迫你用缩进来写程序,使代码清晰.定义函数方便简单方便好用的range函数8 异常处理#!/usr/bin/pythons=input(Inputyourage:)if s=:raiseException(Inputmustno be empty.)try:i=int(s)exceptExceptionas err:print(err)名师资料总
11、结-精品资料欢迎下载-名师精心整理-第 5 页,共 12 页 -排行榜finally:#Cleanup actionprint(Goodbye!)9 文件处理对比 Java,python的文本处理再次让人感动#!/usr/bin/pythonspath=D:/download/baa.txtf=open(spath,w)#Opensfileforwriting.Createsthisfiledoesntexist.f.write(Firstline1.n)f.writelines(Firstline2.)f.close()f=open(spath,r)#Opensfileforreadingf
12、orlinein f:print(每一行的数据是:%s%line)f.close()知识点:open 的参数:r 表示读,w 写数据,在写之前先清空文件内容,a 打开并附加内容.打开文件之后记得关闭10类和继承classBase:def _init_(self):self.data=def add(self,x):self.data.append(x)def addtwice(self,x):self.add(x)self.add(x)#ChildextendsBaseclassChild(Base):def plus(self,a,b):returna+boChild=Child()oChi
13、ld.add(str1)print(oChild.data)名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 12 页 -排行榜print(oChild.plus(2,3)知识点:*self:类似 Java的 this参数11包机制每一个.py 文件称为一个module,module之间可以互相导入.请参看以下例子:#a.pydef add_func(a,b):returna+b#b.pyfroma importadd_func#Alsocanbe:importaprint(Importadd_funcfrommodulea)print(Resultof 1 plus2 is:)p
14、rint(add_func(1,2)#If usingimporta,thenhereshouldbe a.add_funcmodule可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child 子文件夹.child中有一个 modulea.py.如何让 Python知道这个文件层次结构?很简单,每个目录都放一个名为_init _.py的文件.该文件内容可以为空.这个层次结构如下所示:parent-_init_.py-child-_init_.py-a.pyb.py那么 Python如何找到我们定义的module?在标准包 sys 中,p
15、ath属性记录了 Python的包路径.你可以将之打印出来:importsysprint(sys.path)通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境变量会自动添加到 sys.path属性.另一种方便的方法是编程中直接指定我们的module路径到 sys.path中:importsysimportossys.path.append(os.getcwd()+parentchild)print(sys.path)名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 12 页 -排行榜froma importadd_funcprint(sys.path)pr
16、int(Importadd_funcfrommodulea)print(Resultof 1 plus2 is:)print(add_func(1,2)知识点:如何定义模块和包如何将模块路径添加到系统路径,以便 python找到它们如何得到当前路径12内建帮助手册对比 C+,Java的突出进步是内建Javadoc机制,程序员可以通过阅读Javadoc了解函数用法.Python也内建了一些方便函数以便程序员参考.dir 函数:查看某个类/对象的方法.如果有某个方法想不起来,请敲 dir.在 idle 里,试试 dir(list)help 函数:详细的类/对象介绍.在 idle 里,试试 help
17、(list)1 遍历文件夹和文件importosimportos.path#os,os.path里包含大多数文件访问的函数,所以要先引入它们.#请按照你的实际情况修改这个路径rootdir=d:/downloadforparent,dirnames,filenamesinos.walk(rootdir):#case 1:fordirnameindirnames:print(parentis:+parent)print(dirnameis:+dirname)#case 2forfilenameinfilenames:print(parentis:+parent)print(filenamewit
18、hfullpath:+os.path.join(parent,filename)知识点:名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 12 页 -排行榜*os.walk返回一个三元组.其中 dirnames是所有文件夹名字(不包含路径),filenames是所有文件的名字(不包含路径).parent表示父目录.*case1演示了如何遍历所有目录.*case2演示了如何遍历所有文件.*os.path.join(dirname,filename):将形如/a/b/c和d.java变成/a/b/c/d.java.2 分割路径和文件名importos.path#常用函数有三种:分隔路径
19、,找出文件名.找出盘符(windows系统),找出文件的扩展名.#根据你机器的实际情况修改下面参数.spath=D:/download/repository.7z#case1:p,f=os.path.split(spath);print(diris:+p)print(fileis:+f)#case2:drv,left=os.path.splitdrive(spath);print(driveris:+drv)print(leftis:+left)#case3:f,ext=os.path.splitext(spath);print(f is:+f)print(extis:+ext)知识点:这三个
20、函数都返回二元组.*case1分隔目录和文件名*case2分隔盘符和文件名*case3分隔文件和扩展名总结:5 个函数os.walk(spath)os.path.split(spath)os.path.splitdrive(spath)os.path.splitext(spath)os.path.join(path1,path2)3 复制文件名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 12 页 -排行榜importshutilimportosimportos.pathsrc=d:downloadtestmyfile1.txtdst=d:downloadtestmyfile2.
21、txtdst2=d:/download/test/测试文件夹.txtdir1=os.path.dirname(src)print(dir1%s%dir1)if(os.path.exists(src)=False):os.makedirs(dir1)f1=open(src,w )f1.write(linean)f1.write(linebn)f1.close()shutil.copyfile(src,dst)shutil.copyfile(src,dst2)f2=open(dst,r )forlineinf2:print(line)f2.close()#测试复制文件夹树try:srcDir=d:
22、/download/testdstDir=d:/download/test2#如果 dstDir已经存在,那么 shutil.copytree方法会报错!#这也意味着你不能直接用d:作为目标路径.shutil.copytree(srcDir,dstDir)exceptExceptionas err:print(err)知识点:*shutil.copyfile:如何复制文件*os.path.exists:如何判断文件夹是否存在*shutil.copytree:如何复制目录树总结:4 个函数os.path.dirname(path)os.path.exists(path)shutil.copyfi
23、le(src,dst)名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 12 页 -排行榜shutil.copytree(srcDir,dstDir)4 实战:文件备份小程序importosimportshutilimportdatetime作用:将目录备份到其他路径。实际效果:假设给定目录/media/data/programmer/project/python,备份路径/home/diegoyun/backup/“,则会将 python目录备份到备份路径下,形如:/home/diegoyun/backup/yyyymmddHHMMSS/python/xxx/yyy/zzz.用
24、法:更改这两个参数.backdir:备份目的地.copydirs:想要备份的文件夹.defmainLogic():#adddirsyouwantto copybackdir=d:testprint(backdir)copydirs=copydirs.append(d:temp);#copydirs.append(d:test);print(Copyingfiles=)start=datetime.datetime.now()#gena datafolderforbackupbackdir=os.path.join(backdir,start.strftime(%Y-%m-%d)#print(b
25、ackdiris:+backdir)kc=0fordincopydirs:kc=kc+copyFiles(d,backdir)end=datetime.datetime.now()print(Finished!=)print(Totalfiles:+str(kc)名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 12 页 -排行榜print(Elapsedtime:+str(end-start).seconds)+seconds)defcopyFiles(copydir,backdir):prefix=getPathPrefix(copydir)#print(prefixis:+
26、prefix)i=0fordirpath,dirnames,filenamesinos.walk(copydir):fornameinfilenames:oldpath=os.path.join(dirpath,name)newpath=omitPrefix(dirpath,prefix)print(backdiris:+backdir)newpath=os.path.join(backdir,newpath)print(newpathis:+newpath)ifos.path.exists(newpath)!=True:os.makedirs(newpath)newpath=os.path.
27、join(newpath,name)print(From:+oldpath+to:+newpath)shutil.copyfile(oldpath,newpath)i=i+1returnidefgetPathPrefix(fullpath):#Giving/media/data/programmer/project/,gettheprefix#/media/data/programmer/l=fullpath.split(os.path.sep)#print(str(l-1=)ifl-1 =:tmp=l-2 else:tmp=l-1 returnfullpath0:len(fullpath)-len(tmp)-1 defomitPrefix(fullpath,prefix):#Giving/media/data/programmer/project/python/tutotial/file/test.py,#andprefixis Giving/media/data/programmer/project/,#returnpathas python/tutotial/file/test.pyreturnfullpathlen(prefix)+1:mainLogic()名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 12 页 -