Python-Python3入门2(PPT61页)

上传人:仙*** 文档编号:118865658 上传时间:2022-07-12 格式:PPT 页数:63 大小:557.50KB
收藏 版权申诉 举报 下载
Python-Python3入门2(PPT61页)_第1页
第1页 / 共63页
Python-Python3入门2(PPT61页)_第2页
第2页 / 共63页
Python-Python3入门2(PPT61页)_第3页
第3页 / 共63页
资源描述:

《Python-Python3入门2(PPT61页)》由会员分享,可在线阅读,更多相关《Python-Python3入门2(PPT61页)(63页珍藏版)》请在装配图网上搜索。

1、2022年7月12日21Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试3 print(Hello world!)Hello world!2*101024 j=0 for i in range(1,11,1):.j=j+i.print(j)55n 下载:下载:www.python.orgn 版本:版本:windows、linux、源码、源码n 开发开发l 集成开发环境:IDLE(Python 3.4 GUI-32 bit)l 命令行:Python 3.4(command line-32 bit)l 手机:qpythonn 范例范例4n 语法规则:语法规则:注释注释#、缩进

2、、缩进、“:”、单引号、双引号等、单引号、双引号等n 数据类型:数据类型:int、str、float等(等(python3里面这些都是类)里面这些都是类)n 语句:语句:if、else、elif、while、def、import等等n 函数:函数:print()、range()、help()等等n 对象:对象:os、sys等等n 忘记了语句,不会用?忘记了语句,不会用?help()函数函数n 不用了,要退出?不用了,要退出?exit()函数函数51Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试6 a=Hello world!#赋值语句 print(a)Hello wor

3、ld!type(a)#表达式:在交互模式下输出值 n=12 print(n)12 type(n)n=12.0 type(n)变量在它们被赋值的时候创建无需声明变量名是大小写敏感的:val和 Val不一样!变量的类型由 Python 决定变量可以在任何时候重新赋值为任何其他类型任何其他值 n=apa print(n)apa type(n)7整数:12 0 -12987 0X1A2class int十六进制是以 0X 开头,数字范围为 0-9 和A-F浮点数:12.03 1E1 -1.54E-21class float精度和范围与 C语言的 double型相同复数:1+3Jclass comple

4、x8通常的数字表达式运算符:+,-,/,*,*,%,/运算优先级和括号正常工作 12+517 12+5*222(12+5)*234 a=12+5 print(a)17 b=12.4+a#a is converted to float automatically b29.4 print(b)29.4 4+5.59.5 1+3.0*210.0 1+2j+3-4j(4-2j)9True 和 False 为预定义值;实际上是整数1 和 0值 0 作为 False,所有其他值是 True常见的布尔表达式运算符:not,and,or True or FalseTrue not(True and False

5、)or True)False True*1212 0 and 10比较运算符产生布尔值比较运算符:,=,=,!=12 1213False 12 12!=13True10单引号和双引号均可用于字符串生成一样的字符串值字符串中的特殊符号:n newline,t tab,others三引号(单、双均可)用于大块的文本内容 a=Hello world!b=Hello world!a=bTrue a=One line.nAnother line.print(a)One line.Another line.b=One line,another line.print(b)One line,another l

6、ine.a=Pers lecture print(a)Pers lecture11数据类型转换需要用到函数:str,int,float函数 eval 将一个字符串解释为 Python 表达式 a=58 type(a)b=int(a)b58 type(b)c=int(blah)#如果不合法的表达式出现会怎样?Traceback(most recent call last):File,line 1,in-toplevel-c=int(blah)ValueError:invalid literal for int():blah f=float(1.2e-3)f#uses repr0.0012 pri

7、nt(f)#uses str0.0012 eval(23-12)1112 a=Part 1 b=and part 2 a+b#合并,添加字符串Part 1 and part 2 s=a*2#重复并合并字符串 print(s)Part 1Part 1 s0#下标:单个字符,偏移量为0P s0:4#片段:部分字符串,从 0 到 4 的正左方Part s5:#边界留出:一直到字符串的一端1Part 1 s6:-1#负数代表指标计数从右边开始,结束点在-1 的正左方Part len(s)#函数 len 获得字符串的长度12 p in s#成员属性测试False P in sTrue Part in s

8、#子串测试True13Python中的字符串不可修改!如果你真的要改变一个字符串:用旧的字符串片段生成一个新的 s0=BTraceback(most recent call last):File,line 1,in-toplevel-s0=BTypeError:object doesnt support item assignment s=B+s1:sBart 1Part 1重新生成字符串可能要用到大量的计算机资源如果你要生成许多新串,尝试字符串格式化列表(List)处理 能让字符串处理更为有效14n字符串有一组built-in(内建,内置,内嵌)方法n没有方法可以改变原串!n有几个方法可以生

9、成新串 s=a string,with stuff s.count(st)#有多少子串?2 s.find(stu)#如果可以,给出子串的位置15 three=3 three.isdigit()#是纯数字串吗?True supper=s.upper()#转为大写 supperA STRING,WITH STUFF s.rjust(30)#通过加空格来右对齐 a string,with stuff“newlinesnnn”.strip()#一个实际的串也可以调用方法!newlines s.replace(stuff,characters)#替换子串(全部出现过的子串)a string,with c

10、haracters s.replace(s,X,1)#只替换一次a Xtring,with stuff15当有多个项需要格式化的时候,要用元组(Tuples)作为操作符元组的长度必须匹配格式化项数不能用列表类型 List!c=Python n=200 This is a%s course with%i students.%(c,n)This is a Python course with 200 students.w=Number%i won!%12#字符串格式化操作符%wNumber 12 won!字符串格式化操作符%通常是生成新串的最佳方式类似于C语言的格式化:需要一些技巧,但功能强大多个

11、字符串格式化代码%s:string(uses function str)%r:string(uses function repr)%f,%e,%g:float16格式含义d带符号的十进制整数.i带符号的十进制整数.o带符号的八进制值.u过时的类型,等于 d.x带符号的十六进制(小写).X带符号的十六进制(大写).e浮点数指数格式(小写).E浮点数指数格式(大写).f浮点数十进制格式.F浮点数十进制格式.g浮点数格式.如果指数小于-4就使用小写指数格式,否则使用十进制格式.G浮点数格式.如果指数小于-4就使用大写指数格式,否则使用十进制格式.c单个字符(接受整数获这个单个正常字符).r字符串(使

12、用函数repr()转为任何python对象).s字符串(使用函数str()转为任何python对象).%转为%自己.17n有序的对象序列;排列n异质的;可以包含任意类型的对象的混合 r=1,2.0,3,5#列表实例,不同的值 r1,2.0,3,5 type(r)r1#通过下标来访问;偏移量为 0 2.0 r-1#负的下标代表从尾部开始计数5 r1:3#列表的片段;给出新的列表2.0,3 w=r+10,19#合并列表;给出另外的一个列表 w1,2.0,3,5,10,19 r#原列表不变;w 和 r 不同1,2.0,3,5 t=0.0*10#用重复生成一个初始向量 t0.0,0.0,0.0,0.0

13、,0.0,0.0,0.0,0.0,0.0,0.018n列表是可变的,可以改变局部n列表是动态的,大小可变 r=1,2.0,3,5 r3=word#通过下标访问改变一个元素(项)r1,2.0,3,word r0=9,8#表可以嵌套 r9,8,2.0,3,word r0:3=1,2,5,6#改变列表的一个片段,可以改变列表的长度 r1,2,5,6,word r1:3=#通过设置列表的片段为空集来移除元素 r1,6,word len(r)#列表的长度;项的个数3 6 in r#成员属性测试True r.index(6)#搜索并给出位置,如果没有的话 119列表有一组内建的方法有些方法会从内部改变列表

14、 r=1,2.0,3,5 r.append(thing)#在列表尾增加一个项 r1,2.0,3,5,thing r.append(another,list)#列表被看作一个单一项 r1,2.0,3,5,thing,another,list r=1,2.0,3,5 r.extend(item,another)#列表的项逐次添加 r1,2.0,3,5,item,another k=r.pop()#移除最后一项 kanother r1,2.0,3,5,item方法 append 和 pop 可用于实现栈20使用内建的 sort 方法:高效排序是内部进行的,不产生新表!r=2,5,-1,0,20 r.

15、sort()r-1,0,2,5,20 w=apa,1,2,1234 w.sort()#字符串:使用ASCII 顺序 w1,1234,2,apa w.reverse()#反转字符串!wapa,2,1234,1 v=w:#首先生成新表 v.reverse()#反转这份拷贝 v#使用 sort1,1234,2,apa wapa,2,1234,121nsplit 对于简单的分解分析很有用n否则要用正则表达式模块 re;s=biovitrum#生成字符串 w=list(s)#转为字符的列表 wb,i,o,v,i,t,r,u,m w.reverse()wm,u,r,t,i,v,o,i,b r=.join(

16、w)#使用空串的join方法 rmurtivoib d=-.join(w)#使用字符-的join方法 dm-u-r-t-i-v-o-i-b s=a few words w=s.split()#基于白空格切分(空格,新行)wa,few,words|.join(w)#对其他串用方法 joina|few|words22n所有的值都是对象n一个变量是一个引用对象的名字n一个对象可能有多个名字引用它n这个特性在内部修改对象的时候很重要!n你可能不得不做出适当的拷贝来得到你要的效果n对不可变对象(数字,字符串),这永远不是问题a a=1,3,2 b=a c=b0:2 d=b:1,3,2bcd1,31,3,

17、2 b.sort()#a 被改变!a1,2,323关键字/值 对的无序序列每个关键字映射到一个值也称为映射“mapping”,哈希表“hash table”或查找表 lookup table h=key:12,nyckel:word hkey#由关键字访问12 h.has_key(nyckel)#(仅用于2.x版本)True hPer=Kraulis#增加一个关键字/值 hnyckel:word,Per:Kraulis,key:12#输出顺序是随机的 hPer=Johansson#替换值 hnyckel:word,Per:Johansson,key:12关键字通常是一个整数或一个字符串必须是不

18、可变对象可以是任何可hash的对象任何关键字在一个字典中只能出现一次!值可以是任何对象可以出现多次24使用命令del 销毁数据命令!不是函数!实际上移除变量(名字),不是对象 a=thing#定义一个变量 athing del a#把这个变量忘掉 aTraceback(most recent call last):File,line 1,in-toplevel-aNameError:name a is not defined h=key:12,nyckel:word del hkey#移除关键字和它的值 hnyckel:word r=1,3,2 del r1#另一个删除表项的方式 r1,225

19、 h=key:12,nyckel:word Per in h#测试是否一个关键字在字典中False hPerTraceback(most recent call last):File,line 1,in-toplevel-hPerKeyError:Per len(h)#字典中的关键字的数量2 h.keys()#所有的关键字在无序的表中nyckel,key h.values()#所有的值在无序的表中word,12 h.get(Per,unknown)#返回值,或者返回缺省值unknown h.get(key,unknown)1226 hPer=Johansson hnyckel:word,Per

20、:Johansson h.update(g)#根据g添加或者更新所有的关键字/值 hnyckel:word,key:12,Per:Johansson g=h.copy()#字典的一个单独拷贝 del hkey hnyckel:word gnyckel:word,key:1227n和表 list 一样,除了不可变n一旦生成,就不可改变n某些函数会返回元组 t=(1,3,2)t1#由下标访问,偏移量03(a,b,c)=t#元组赋值 a1 b3 a,b,c#一个实际上的元组表达式!(1,3,2)a,b=b,a#交换值的技巧 a,b(3,1)r=list(t)#转换元组为表 r1,3,2 tuple(

21、r)#转为表为元组(1,3,2)281Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试29n 现在我们要编写合适的脚本并保存到文件中n 在IDLE中:l Filel New Windowl 直接点击 Save as 打开目录 Desktop 创建一个文件夹 Python course 进入这个文件夹 输入文件名 t1.py 保存n 在这个叫 t1.py的窗口中l 输入下述代码:l 保存这个文件:Ctrl-S,或者进入菜单 File,Savel 运行这个脚本:按F5,或者进入菜单 Run,Run Modulefile t1.py#这是文档字符串print(Hello wor

22、ld!“)30Python的一个让人又爱又恨的特性就是块结构块结构由缩进确定编辑一个新的文件t2.py在窗口 t1.py 中点击 File,New Window,之后 Save As应用 if 命令:注意 IDLE编辑器会自动帮助添加缩进运行脚本(F5)file t2.pyperson=Lukeif person=Per:status=Pythonistelif person=Luke:status=Jedi knightelse:status=unknownprint(person,status)31n特别地,对于那些硬编码的选择(elifs)n更紧凑,更高效n这个模式非常有用file t3

23、.pystatus_map=Luke:Jedi Knight,Per:Pythonistperson=Lukeprint(person,status_map.get(person,unknown)32True-1True124True!FalseFalse listTruekey:valFalse dictTrue!FalseFalsestrFalse0.0floatFalse0int所有内嵌类型可以直接在if 命令中使用数字0对应 False其他数都对应 True空对象(str,list,dict)对应 False其它有值的对象对应 True使用函数 bool 来获取显示的值33n对一个块语

24、句的重复执行n对一个序列进行迭代遍历(list,tuple,string,iterator)file t4.pys=0for i in 0,1,2,3,4,5,6,7,8:#遍历列表中的值,赋给i s=s+i if s 10:break#结束 for 循环print(i=%i,s=%i%(i,s)file t5.pyr=for c in this is a string with blanks:#一个字符一个字符地遍历字符串 if c=:continue#跳过后面的代码块,继续循环 r.append(c)print(.join(r)34n对一个块语句的重复n不断循环执行,直到判断变成false

25、或者出现breakfile t7.pyr=n=0last=20while n=last:#任何具有布尔值的表达式 r.append(str(n)n+=3print(,.join(r)35如果没有遇到break则执行else 区块经常用来取代success/failure 标记对 for 与 while 循环都适用file t8.pyr=1,3,10,98,-2,48for i in r:if i from math import*r=0,1,2,3,4,5,6 list(map(cos,r)1.0,0.54030230586813977,-0.41614683654714241,-0.9899

26、9249660044542,-0.65364362086361194,0.28366218546322625,0.96017028665036597 r=0,1,2,3,4,5,6 def large(x):return x3 print(list(filter(large,r)4,5,6filter也是一个操作列表的内嵌函数filter需要一个函数与一个列表它用这个函数来决定哪个项应该被放入过滤结果队列中遍历列表中的每一个值,输入到这个函数中如果这个函数返回True,那么值就放到过滤结果队列中如果这个函数返回False,那么这个值就会被跳过48一个文件操作对象由内嵌函数 open创建文件对象

27、有一系列函数 read函数可以从文件中获取数据队列read:读取整个文件(或者说N 字节),返回一个单独的字符串readline:读取一行(然后跳到新的一行)readlines:读取所有的行,返回一个字符串的列表 f=open(test.txt)#默认:只读模式 line=f.readline()#读一行 lineThis is the first line.n lines=f.readlines()#读所有剩余行 linesThis is the second.n,And third.n有些模块定义的对象类似文件,这些对象具有的方法也让它们表现得像文件一样49write 函数只是简单地输出给

28、定的字符串 字符串不一定是ASCII码,二进制串也是可以的 w=open(output.txt,w)#写模式(默认写的是文本)w.write(stuff)#并不自动添加新行 w.write(n)w.write(moren and even moren)w.close()stuffmore and even more50迭代使用 for循环一行行读取文件推荐用法file t20.pyinfile=open(test.txt)#只读模式outfile=open(test_upper.txt,w)#写模式;创建文件for line in infile:outfile.write(line.upper

29、()infile.close()#并不严格要求;系统会自动执行outfile.close()注意:每行结尾会尾随一个换行符 n 使用字符串方法 strip或者 rstrip来去除它51老版本的Python 不支持这种特性 for line in file 相应地,过去要使用下面这种操作:for line in infile.readlines():#把整个文件按行读进一个行的列表中 do_something(line)for line in infile.xreadlines():#类似xrange:内存使用更高效 do_something(line)line=infile.readline(

30、)while line:#只有当读到文件结束时line才是空的 do_something(line)line=infile.readline()最后一个方案可行是因为 readline 返回的line自动包含一个”n”换行符只有当读到文件结束时,readline才会返回一个空行,该行的布尔值False521Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试53正则表达式:正则表达式就是记录文本规则的代码,是高级字符串模式定义一个模式:定义模式的语法与 Perl 或者 grep的很相似把它应用到一个字符串上处理结果file t37.pyimport retext=Hi,I a

31、m Shirley Hilton.I am his wife.m=re.findall(hi,text)if m:print(m)else:print(not match)hi,hi把正则表达式改为“Hhi”,结果为:Hi,hi,Hi,hi把正则表达式改为“i.”,结果为:i,ir,il,is,if把正则表达式改为“I.*e”,结果为:I am Shirley Hilton.I am his wife把正则表达式改为“I.*?e”,结果为:I am Shirle,I am his wife如果你不觉得正则表达式很难读写的话,要么你是一个天才,要么,你不是地球人。54sys.argv 命令行执行

32、时使用的参数列表;sys.argv0是这个脚本的名字sys.path 用来寻找模块的目录路径的列表sys.platform 一个用来表示当前操作系统的字符串 import sys sys.platformwin32 import sys sys.stdout.write(the hard way)the hard way12sys.stdout,sys.stdin,sys.stderr 预定义的文件处理对象,用于 输入/输出 print的东西会传给 sys.stdout 也可以设置成给其他文件sys.exit(n)强制退出 Python 执行 n 是一个整数错误代码,通常是 055os.get

33、cwd():返回当前目录 os.getcwd()M:My DocumentsPython coursetestsos.environ:返回包含当前环境变量的字典Dictionary for k,v in os.environ.items():print(k,v)TMP C:DOCUME1se22312LOCALS1TempCOMPUTERNAME WS101778USERDOMAIN BIOVITRUMCOMMONPROGRAMFILES C:Program FilesCommon FilesPROCESSOR_IDENTIFIER x86 Family 6 Model 9 Stepping

34、5,GenuineIntelPROGRAMFILES C:Program FilesPROCESSOR_REVISION 0905HOME C:emacs.os.chdir(path):把当前路径切换到 pathos.listdir(path):返回 path下的文件夹目录列表os.mkdir(path):创建一个目录 pathos.rmdir(path):删除目录 pathos.remove(path):删除文件 path56os.system(command)在子进程中执行shell命令(字符串string)返回一个整数错误码os.path.exists(path):路径是否存在,是目录还

35、是文件os.path.isfile(path):路径是一个文件吗os.path.isdir(path):路径是一个目录吗os.path.abspath(path):返回给定的相对路径的绝对路径 d=os.path.abspath(.)dM:My DocumentsPython coursetestsos.path.dirname(path):返回给定路径的目录 os.path.dirname(d)M:My DocumentsPython course571Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试58在Shell中打开Debugger选项Debug Control中

36、进行查看控制在IDLE编辑器中可以设置断点59pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能。import pdb a=aaapdb.set_trace()b=bbbc=cccfinal=a+b+c print(final)c:usersdengdidesktopt2.py(4)()-b=bbb(Pdb)list 1 import pdb 2 a=aaa 3 pdb.set_trace()4 -b=bbb 5 c=ccc 6 final=a+b+c 7 print(final)EOF(Pdb)next c:usersdengdidesktopt2.

37、py(5)()-c=ccc(Pdb)pp aaaa(Pdb)60常用命令解释break 或 b 设置断点设置断点continue 或 c继续执行程序list 或 l查看当前行的代码段step 或 s 进入函数return 或 r执行代码直到从当前函数返回exit 或 q中止并退出next 或 n 执行下一行pp 打印变量的值help帮助(Pdb)helpDocumented commands(type help):=EOF c d h list q rv undisplaya cl debug help ll quit s unt alias clear disable ignore longlist r source until args commands display interact n restart step up b condition down j next return tbreak w break cont enable jump p retval u whatis bt continue exit l pp run unalias where (Pdb)help pppp expression Pretty-print the value of the expression.61演讲完毕,谢谢观看!

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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