Python学习入门经典实例.doc

上传人:小** 文档编号:630404 上传时间:2019-04-22 格式:DOC 页数:12 大小:82.50KB
返回 下载 相关 举报
Python学习入门经典实例.doc_第1页
第1页 / 共12页
Python学习入门经典实例.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《Python学习入门经典实例.doc》由会员分享,可在线阅读,更多相关《Python学习入门经典实例.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、#*1 你好你好#打开新窗口,输入:#! /usr/bin/python # -*- coding: utf8 -*- s1=input(“Input your name:“) print(“你好,%s“ % s1) 知识点:* input(“某字符串“)函数:显示“某字符串“,并等待用户输入.* print()函数:如何打印.* 如何应用中文* 如何用多行注释 2 字符串和数字字符串和数字但有趣的是,在 javascript 里我们会理想当然的将字符串和数字连接,因为是动态语言嘛. 但在 Python 里有点诡异,如下: #! /usr/bin/pythona=2 b=“test“ c=a+

2、b运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换 #! /usr/bin/python #运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换 a=2 b=“test“ c=str(a)+b d=“1111“ e=a+int(d) #How to print multiply values print (“c is %s,e is %i“ % (c,e) 知识点:* 用 int 和 str 函数将字符串和数字进行转换* 打印以#开头,而不是习惯的/* 打印多个参数的方式#*3 列表列表#! /usr/bin/python # -*- codin

3、g: utf8 -*- #列表类似 Javascript 的数组,方便易用#定义元组 word=a,b,c,d,e,f,g#如何通过索引访问元组里的元素 a=word2 print (“a is: “+a) b=word1:3 print (“b is: “) print (b) # index 1 and 2 elements of word. c=word:2 print (“c is: “) print (c) # index 0 and 1 elements of word. d=word0: print (“d is: “) print (d) # All elements of w

4、ord.#元组可以合并 e=word:2+word2: print (“e is: “) print (e) # All elements of word. f=word-1 print (“f is: “) print (f) # The last elements of word. g=word-4:-2 print (“g is: “) print (g) # index 3 and 4 elements of word. h=word-2: print (“h is: “) print (h) # The last two elements. i=word:-2 print (“i i

5、s: “) print (i) # Everything except the last two characters l=len(word) print (“Length of word is: “+ str(l) print (“Adds new element“) word.append(h) print (word)#删除元素 del word0 print (word) del word1:3 print (word) 知识点:#* 列表长度是动态的,可任意添加删除元素.* 用索引可以很方便访问元素,甚至返回一个子列表* 更多方法请参考 Python 的文档 4 字典字典#! /us

6、r/bin/pythonx=a:aaa,b:bbb,c:12 print (xa) print (xb) print (xc)for key in x:print (“Key is %s and value is %s“ % (key,xkey) 知识点:* 将他当 Java 的 Map 来用即可.5 字符串字符串比起 C/C+,Python 处理字符串的方式实在太让人感动了.把字符串当列表来用吧. #! /usr/bin/pythonword=“abcdefg“ a=word2 print (“a is: “+a) b=word1:3 print (“b is: “+b) # index 1

7、 and 2 elements of word. c=word:2 print (“c is: “+c) # index 0 and 1 elements of word. d=word0: print (“d is: “+d) # All elements of word. e=word:2+word2: print (“e is: “+e) # All elements of word. f=word-1 print (“f is: “+f) # The last elements of word. g=word-4:-2 print (“g is: “+g) # index 3 and

8、4 elements of word. h=word-2: print (“h is: “+h) # The last two elements. i=word:-2 print (“i is: “+i) # Everything except the last two characters#*l=len(word) print (“Length of word is: “+ str(l)中文和英文的字符串长度是否一样? #! /usr/bin/python # -*- coding: utf8 -*- s=input(“输入你的中文名,按回车继续“); print (“你的名字是 : “ +

9、s)l=len(s) print (“你中文名字的长度是:“+str(l)知识点:类似 Java,在 python3 里所有字符串都是 unicode,所以长度一致.6 条件和循环语句条件和循环语句#! /usr/bin/python #条件和循环语句x=int(input(“Please enter an integer:“) if x0:x=0print (“Negative changed to zero“)elif x=0:print (“Zero“)else:print (“More“)# Loops List a = cat, window, defenestrate for x

10、in a:print (x, len(x)#知识点:# * 条件和循环语句 # * 如何得到控制台输入7 函数函数#*#! /usr/bin/python # -*- coding: utf8 -*- def sum(a,b):return a+bfunc = sum r = func(5,6) print (r)# 提供默认值 def add(a,b=2):return a+b r=add(1) print (r) r=add(1,5) print (r)一个好用的函数 #! /usr/bin/python # -*- coding: utf8 -*- # The range() funct

11、ion a =range (1,10) for i in a:print (i)a = range(-2,-11,-3) # The 3rd parameter stands for step for i in a:print (i)知识点:Python 不用来控制程序结构,他强迫你用缩进来写程序,使代码清晰. 定义函数方便简单 方便好用的 range 函数8 异常处理异常处理#! /usr/bin/python s=input(“Input your age:“) if s =“:raise Exception(“Input must no be empty.“)try:i=int(s) e

12、xcept Exception as err:print(err)#*finally: # Clean up actionprint(“Goodbye!“)9 文件处理文件处理对比 Java,python 的文本处理再次让人感动#! /usr/bin/pythonspath=“D:/download/baa.txt“ f=open(spath,“w“) # Opens file for writing.Creates this file doesnt exist. f.write(“First line 1.n“) f.writelines(“First line 2.“)f.close()f

13、=open(spath,“r“) # Opens file for readingfor line in f:print(“每一行的数据是:%s“%line)f.close()知识点:open 的参数:r 表示读,w 写数据,在写之前先清空文件内容,a 打开并附加内容. 打开文件之后记得关闭10 类和继承类和继承class Base:def _init_(self):self.data = def add(self, x):self.data.append(x)def addtwice(self, x):self.add(x)self.add(x)# Child extends Base cl

14、ass Child(Base):def plus(self,a,b):return a+boChild =Child() oChild.add(“str1“) print (oChild.data)#*print (oChild.plus(2,3) 知识点:* self:类似 Java 的 this 参数11 包机制包机制每一个.py 文件称为一个 module,module 之间可以互相导入.请参看以下例子: # a.py def add_func(a,b):return a+b# b.py from a import add_func # Also can be : import apri

15、nt (“Import add_func from module a“) print (“Result of 1 plus 2 is: “) print (add_func(1,2) # If using “import a“ , then here should be “a.add_func“module 可以定义在包里面.Python 定义包的方式稍微有点古怪,假设我们有一个 parent 文件夹,该文件夹有一个 child 子文件夹.child 中有一个 module a.py . 如何让 Python 知道这个文件层次结构?很简单,每个目录都放一个名为_init_.py 的文件.该文件

16、内容可以 为空.这个层次结构如下所示: parent -_init_.py-child- _init_.py-a.pyb.py那么 Python 如何找到我们定义的 module?在标准包 sys 中,path 属性记录了 Python 的包路径.你可以将之打印出来: import sysprint(sys.path)通常我们可以将 module 的包路径放到环境变量 PYTHONPATH 中,该环境变量会自动添 加到 sys.path 属性.另一种方便的方法是编程中直接指定我们的 module 路径到 sys.path 中: import sys import os sys.path.app

17、end(os.getcwd()+parentchild)print(sys.path)#*from a import add_funcprint (sys.path)print (“Import add_func from module a“) print (“Result of 1 plus 2 is: “) print (add_func(1,2)知识点:如何定义模块和包 如何将模块路径添加到系统路径,以便 python 找到它们 如何得到当前路径12 内建帮助手册内建帮助手册对比 C+,Java 的突出进步是内建 Javadoc 机制,程序员可以通过阅读 Javadoc 了解函 数用法.

18、Python 也内建了一些方便函数以便程序员参考.dir 函数: 查看某个类/对象的方法. 如果有某个方法想不起来,请敲 dir. 在 idle 里,试 试 dir(list) help 函数: 详细的类/对象介绍. 在 idle 里, 试试 help(list)1 遍历文件夹和文件遍历文件夹和文件 import os import os.path # os,os.path 里包含大多数文件访问的函数,所以要先引入它们. # 请按照你的实际情况修改这个路径 rootdir = “ d:/download “ for parent, dirnames, filenames in os.walk(

19、rootdir):# case 1: for dirname in dirnames:print ( “ parent is: “ + parent)print ( “ dirname is: “ + dirname)# case 2 for filename in filenames:print ( “ parent is: “ + parent)print ( “ filename with full path : “ + os.path.join(parent, filename) 知识点:#* os.walk 返回一个三元组.其中 dirnames 是所有文件夹名字(不包含路径),fi

20、lenames 是所 有文件的名字(不包含路径).parent 表示父目录.* case1 演示了如何遍历所有目录.* case2 演示了如何遍历所有文件.* os.path.join(dirname,filename) : 将形如“/a/b/c“和“d.java“变成/a/b/c/d.java“. 2 分割路径和文件名分割路径和文件名 import os.path # 常用函数有三种:分隔路径,找出文件名.找出盘符(windows 系统),找出文件的扩展名. # 根据你机器的实际情况修改下面参数. spath = “ D:/download/repository.7z “ # case 1:

21、 p,f = os.path.split(spath); print ( “ dir is: “ + p) print ( “ file is: “ + f)# case 2: drv,left = os.path.splitdrive(spath); print ( “ driver is: “ + drv) print ( “ left is: “ + left) # case 3: f,ext = os.path.splitext(spath); print ( “ f is: “ + f) print ( “ ext is: “ + ext) 知识点: 这三个函数都返回二元组.* ca

22、se1 分隔目录和文件名* case2 分隔盘符和文件名* case3 分隔文件和扩展名 总结总结:5 个函数个函数 os.walk(spath) os.path.split(spath) os.path.splitdrive(spath) os.path.splitext(spath) os.path.join(path1,path2) 3 复制文件复制文件 #*import shutil import os import os.pathsrc = “ d:downloadtestmyfile1.txt “ dst = “ d:downloadtestmyfile2.txt “ dst2 =

23、 “ d:/download/test/测试文件夹.txt “ dir1 = os.path.dirname(src)print ( “ dir1 %s “ % dir1)if (os.path.exists(src) = False):os.makedirs(dir1) f1 = open(src, “ w “ ) f1.write( “ line an “ ) f1.write( “ line bn “ ) f1.close()shutil.copyfile(src, dst) shutil.copyfile(src, dst2) f2 = open(dst, “ r “ ) for li

24、ne in f2:print (line)f2.close()# 测试复制文件夹树 try :srcDir = “ d:/download/test “ dstDir = “ d:/download/test2 “ # 如果 dstDir 已经存在,那么 shutil.copytree 方法会报错! # 这也意味着你不能直接用 d:作为目标路径. shutil.copytree(srcDir, dstDir) except Exception as err:print (err) 知识点:* shutil.copyfile:如何复制文件* os.path.exists:如何判断文件夹是否存在*

25、 shutil.copytree:如何复制目录树 总结总结:4 个函数个函数 os.path.dirname(path) os.path.exists(path) shutil.copyfile(src, dst) #*shutil.copytree(srcDir, dstDir) 4 实战实战:文件备份小程序文件备份小程序 import os import shutil import datetime 作用:将目录备份到其他路径。 实际效果: 假设给定目录“/media/data/programmer/project/python“ , 备份路径“/home/diegoyun/backup/

26、“ , 则会将 python 目录备份到备份路径下,形如:/home/diegoyun/backup/yyyymmddHHMMSS/python/xxx/yyy/zzz.用法:更改这两个参数. backdir:备份目的地. copydirs:想要备份的文件夹. def mainLogic():# add dirs you want to copy backdir = “ d:test “ print (backdir)copydirs = copydirs.append( “ d:temp “ );# copydirs.append(“d:test“); print ( “ Copying f

27、iles = “ )start = datetime.datetime.now()# gen a data folder for backup backdir = os.path.join(backdir,start.strftime( “ %Y-%m-%d “ )# print(“backdir is:“+backdir) kc = 0for d in copydirs:kc = kc + copyFiles(d,backdir)end = datetime.datetime.now()print ( “ Finished! = “ )print ( “ Total files : “ +

28、str(kc) )#*print ( “ Elapsed time : “ + str(end - start).seconds) + “ seconds “ )def copyFiles(copydir,backdir):prefix = getPathPrefix(copydir)# print(“prefix is:“+prefix ) i = 0for dirpath,dirnames,filenames in os.walk(copydir):for name in filenames:oldpath = os.path.join(dirpath,name)newpath = omi

29、tPrefix(dirpath,prefix)print ( “ backdir is: “ + backdir ) newpath = os.path.join(backdir,newpath)print ( “ newpath is: “ + newpath)if os.path.exists(newpath) != True:os.makedirs(newpath) newpath = os.path.join(newpath,name)print ( “ From: “ + oldpath + “ to: “ + newpath)shutil.copyfile(oldpath,newp

30、ath)i = i + 1 return i def getPathPrefix(fullpath):# Giving /media/data/programmer/project/ , get the prefix # /media/data/programmer/ l = fullpath.split(os.path.sep)# print(str(l-1=“) if l - 1 = “ :tmp = l - 2 else :tmp = l - 1 return fullpath0:len(fullpath) - len(tmp) - 1 def omitPrefix(fullpath,prefix):# Giving /media/data/programmer/project/python/tutotial/file/test.py , # and prefix is Giving /media/data/programmer/project/, # return path as python/tutotial/file/test.py return fullpathlen(prefix) + 1 :mainLogic()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

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