Python第三次理论课

上传人:m**** 文档编号:584493528 上传时间:2024-08-31 格式:PPT 页数:59 大小:780.51KB
返回 下载 相关 举报
Python第三次理论课_第1页
第1页 / 共59页
Python第三次理论课_第2页
第2页 / 共59页
Python第三次理论课_第3页
第3页 / 共59页
Python第三次理论课_第4页
第4页 / 共59页
Python第三次理论课_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《Python第三次理论课》由会员分享,可在线阅读,更多相关《Python第三次理论课(59页珍藏版)》请在金锄头文库上搜索。

1、12024/8/312024/8/311 12008.05程序设计基础(Python语言)主讲:朱立华22024/8/312024/8/312 22008.05第三讲:第4章字符串和文件操作3本次课主要内容主要内容主要内容理解理解字符串数据类型字符串数据类型及其及其在计算机中的表示在计算机中的表示一掌握常用的字符串处理掌握常用的字符串处理方法方法二掌握字符串的编码和格式化方法掌握字符串的编码和格式化方法四掌握掌握 Python 字符串文件和字符串文件和二进制的输入出方法二进制的输入出方法三4.1字符串数据类型字符串数据类型v字符串字符串(常量常量)是用双引号是用双引号或者单引号或者单引号括起来

2、括起来的一个或多个字符。的一个或多个字符。v字符串可以保存在字符串可以保存在变量变量中。变量可以通过中。变量可以通过赋值赋值或或读入读入获得值获得值v字符串的两种形式:字符串的两种形式:str1=Hellostr2=Johnprintstr1,str2HelloJohntype(str1)4.1字符串数据类型字符串数据类型v输入对任何用户输入类型均返回一个字符串对象。输入对任何用户输入类型均返回一个字符串对象。v用用raw_input()函数获取用户输入的字符:函数获取用户输入的字符:name=raw_input(Pleaseenteryourname:)Pleaseenteryourname

3、:JohnprintHello,namev将从键盘输入的字符串将从键盘输入的字符串John赋值给了变量赋值给了变量name4.1字符串数据类型字符串数据类型v索引索引字符在字符串里的位置。字符在字符串里的位置。v对字符串中字符的位置进行标号,可以从左边开对字符串中字符的位置进行标号,可以从左边开始标记为始标记为0,其后的序号依次其后的序号依次+1;或者从右边开始或者从右边开始标记为标记为-1,其前的序号依次其前的序号依次-1vPython中字符串索引从中字符串索引从0开始,一个长度为开始,一个长度为n的的字符串最后一个字符的位置是字符串最后一个字符的位置是n-1。v如果最后一个字符从如果最后一

4、个字符从-1开始开始,则一个长度为则一个长度为n的字符串最前面一个字符的位置是的字符串最前面一个字符的位置是-n。Hell0John0123456789-10 -9-8-7-6-5-4-3-2-14.1字符串数据类型字符串数据类型v索引用于在字符串表达式上访问某一特定位置的索引用于在字符串表达式上访问某一特定位置的字符。字符。v其格式为其格式为。greet=HelloJohnprintgreet0,greet2,greet4Hlox=8printgreetx-2Jprintgreet-3o4.1字符串数据类型字符串数据类型v剪切剪切访问连续的一段字符或子字符串访问连续的一段字符或子字符串v即在

5、字符串中索引一定位置范围内的字符即在字符串中索引一定位置范围内的字符v格式:格式::。start和和end都是都是int型表达式型表达式v子序列从索引子序列从索引start位置开始直到索引位置开始直到索引end位置结位置结束,不包括束,不包括end位置的值位置的值greet0:3Helgreet3:-3loJ4.1字符串数据类型字符串数据类型v如果其中一个索引表达式缺失,则把开始或结束如果其中一个索引表达式缺失,则把开始或结束索引值设为默认值索引值设为默认值greet:5Hellogreet:HelloJohngreet4:oJohn4.1字符串数据类型字符串数据类型v字符串的连接操作:字符串

6、的连接操作:n加法操作(+):将两个字符串连接成为一个字符串n乘法操作(*):构建一个由其本身字符串重复连接而成的字符串vPython字符串操作表字符串操作表4.1字符串数据类型字符串数据类型操作含义+连接*重复 索引 : 剪切len()长度.upper()字符串中字母大写.lower()字符串中字母小写.strip()去两边空格及去指定字符.split()按指定字符分割字符串为数组.join()连接两个字符串序列.find()搜索指定字符串.replace()字符串替换for in 字符串迭代4.1字符串数据类型字符串数据类型v字符串操作综合例子:字符串操作综合例子:pine+applepi

7、neapplePine+And+ApplePineAndApple3*pinepinepinepine4.1字符串数据类型字符串数据类型apple*5appleappleappleappleapplelen(pine)4len(PineAndApple)134.1字符串数据类型字符串数据类型forchinPine!:printchPine!str.upper(abc)ABC4.1字符串数据类型字符串数据类型str=abcdeprintstrip=%s%(str.split()strip=a,b,c,destr=pythonStringfunctionprintstrip=%s%(str.str

8、ip()strip=pythonStringfunction4.2简单的字符串处理简单的字符串处理v例例1:生成计算机系统用户名的程序:生成计算机系统用户名的程序。n要求:输入用户姓名,输出用户名字的首字母后面加上最多7位作为用户名。n举例:用户姓名为AlexShoulson,生成的用户名为”AShoulson”;用户姓名为JohnSmith生成的用户名为”JSmith”。n代码:4.2简单的字符串处理简单的字符串处理#username.pyprintThisprogramgeneratescomputerusernames.n#输入姓名first=raw_input(Pleaseentery

9、ourfirstname:)last=raw_input(Pleaseenteryourlastname:)#连接名字的字符uname=first0+last:7#输出用户名printYourusernameis:,uname4.2简单的字符串处理简单的字符串处理nraw_input()函数获得用户输入的字符串n结合索引、剪切、加法操作生成用户名n运行结果:Thisprogramgeneratescomputerusernames.Pleaseenteryourfirstname:alexPleaseenteryourlastname:shoulsonYourusernameis:ashoul

10、so4.2简单的字符串处理简单的字符串处理v例例2:输出给定月份数字对应的月份名称缩写。:输出给定月份数字对应的月份名称缩写。n要求:输入一个表示月份的数字(112),输出其对应月份名称的缩写n举例:输入3,程序输出Mar.n方法:利用字符串剪切操作来实现该功能将所有的月份名称储存在一个字符串中:months=“JanFebMarAprMayJunJulAugSepOctNovDec”4.2简单的字符串处理简单的字符串处理n在字符串中截取适当的子串来实现特定月份的查找问题的关键:找出在哪里剪切每个月的缩写都由3个字母组成,需要获得从起始位置pos开始且长度为3的子串:monthAbbrev=m

11、onthspos:pos+34.2简单的字符串处理简单的字符串处理npos位置的规律:月份的位置都是3的倍数。月输入位置Jan10Feb23Mar36Apr494.2简单的字符串处理简单的字符串处理n将输入的月份减1再乘以3就能够等到正确的月份起始位置。n例如:输入1,计算(1-1)*3=0*3=0;输入12,计算(12-1)*3=11*3=33。4.2简单的字符串处理简单的字符串处理n代码:#month.py#输出给定月份的缩写#使用months作为查找表months=JanFebMarAprMayJunJulAugSepOctNovDecn=eval(raw_input(Enteramon

12、thnumber(1-12):)4.2简单的字符串处理简单的字符串处理#计算月份n在months中的位置pos=(n-1)*3#计算需要剪切的字符串monthAbbrev=monthspos:pos+3#输出结果printThemonthabbreviationis,monthAbbrev+.4.2简单的字符串处理简单的字符串处理n程序运行结果:month.pyEnteramonthnumber(1-12):7ThemonthabbreviationisJul.n程序缺点:使用字符串作为查找表所剪切的子字符串长度必须相同(本程序中长度均为3)。n考虑如何实现程序输入月份数字,输出完整的月份名称

13、。4.3字符串描述和信息编码字符串描述和信息编码4.3.1字符串编码字符串编码vASCII(AmericanStandardCodeforInformationInterchange):行业标准编:行业标准编码。码。vASCII用数字用数字0-127来表示常见的字符和控制代来表示常见的字符和控制代码码v举例:大写字母举例:大写字母A-Z用用65-90表示,小写字母表示,小写字母a-z用用97-122表示。表示。vUnicode:国际标准化组织制定的更大的编码标:国际标准化组织制定的更大的编码标准,几乎支持所有书写语言的字符。准,几乎支持所有书写语言的字符。vPython字符串支持字符串支持Un

14、icode标准标准4.3字符串描述和信息编码字符串描述和信息编码4.3.1字符串编码字符串编码Python提供内置函数,用于切换字符和其数值。提供内置函数,用于切换字符和其数值。n函数ord():返回单字符字符串所对应的数值n函数chr():返回数值对应的单字符字符串v应用:将输入消息转换成数字序列输出。应用:将输入消息转换成数字序列输出。v算法:算法:n获得输入的信息;n迭代输入信息的每个字符;n输出此字符对应的数字。4.3字符串描述和信息编码字符串描述和信息编码4.3.1字符串编码字符串编码nraw_input()获得用户输入的信息message=raw_input(Pleaseenter

15、themessagetoencode:)nfor循环来迭代处理输入信息中的每个字符:forchinmessage:n利用ord()函数转换输入的字符串4.3字符串描述和信息编码字符串描述和信息编码4.3.1字符串编码字符串编码v程序代码:程序代码:#text2numbers.py#使用Unicode编码将文本转换为数字,获取信息message=raw_input(Pleaseenteramessagetoencode:)print(HerearetheUnicodecodes:)#使用for循环输出每一个字符的unicode编码forchinmessage:printord(ch),4.3字符

16、串描述和信息编码字符串描述和信息编码4.3.1字符串编码字符串编码v程序运行结果:程序运行结果:text2numbers.pyPleaseenteramessagetoencode:HappyHalloween,John!HerearetheUnicodecodes:327297112112121327297108108111119101101110443274111104110334.3字符串描述和信息编码字符串描述和信息编码4.3.1字符串编码字符串编码v注意:结果中输入的空格字符也被转换成相应的注意:结果中输入的空格字符也被转换成相应的Unicode数值。数值。v空格对应的空格对应的Un

17、icode数值是数值是32。4.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输入输出操作veval()函数:将字符串转换为其他任何数据类型。函数:将字符串转换为其他任何数据类型。v数值类型转换函数(数值类型转换函数(int(),float())将字符串)将字符串转换为数字格式。转换为数字格式。int(3)3float(3)3.0float(3)3.04.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输入输出操作v传递给转换函数的字符串必须是数字字符并且要传递给转换函数的字符串必须是数字字符并且要与转换格式一致,否则程序会报错与转换格

18、式一致,否则程序会报错。int(3.5)Traceback(mostrecentcalllast):File,line1,inint(3.5)ValueError:invalidliteralforint()withbase10:3.54.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输入输出操作v使用使用eval()或或int()转换字符串为数字时,转换字符串为数字时,Python允许整数类型的文本输入以允许整数类型的文本输入以0作为开头作为开头。int(007)7int(05)54.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输

19、入输出操作int(003)3eval(05)54.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输入输出操作v例子:扩展前面月份缩写的例子实现日期转换。例子:扩展前面月份缩写的例子实现日期转换。n举例:输入“05/24/2003”,输出日期“May24,2003.”n算法:(1)输入日期,格式为:mm/dd/yyyy格式,并保存在dateStr变量中;(2)将dateStr分成月份、日期、年份的字符串(3)将月份的字符串转换为月份数字格式;4.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输入输出操作n算法:(4)利用数字月份查找这个

20、月份的名称;(5)创建一个新的日期字符串,格式为:月份,日期,年份(6)输出这个新的日期字符串4.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输入输出操作n以字符串格式接收输入的日期,并利用斜杠分离日期信息n将分离出来的月份、日期、年份信息分别赋值给3个字符串变量monthStr,dayStr和yearStr。dateStr=raw_input(Enteradate(mm/dd/yyyy):)monthStr,dayStr,yearStr=dateStr.split(/)4.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输入输出操作

21、n利用int()函数将monthStr转换为数字n数字用于查找日期名称months=January,February,March,April,May,June,July,August,September,October,November,DecembermonthStr=monthsint(monthStr)-1printTheconverteddateis:,monthStr,dayStr+,yearStr4.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输入输出操作nmonths的索引采用了表达式int(monthStr)-1因为:int(monthStr)取

22、值为1到12,而索引months的取值范围是0到11,因此进行减1运算数字用于查找日期名称n程序运行结果:Enteradate(mm/dd/yyyy):11/13/2003Theconverteddateis:November13,20034.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输入输出操作v大多数数据类型都可以通过大多数数据类型都可以通过str()函数转换为字符函数转换为字符串串v转换函数:转换函数:4.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输入输出操作v举例:输入日、月、年数字,以出两种格式日期举例:输入日、月、

23、年数字,以出两种格式日期v代码:代码:#dateConvert2.py#将日期格式由mm/dd/yyyy格式转换为monthday,year格式#获取日期day,month,year=eval(raw_input(Pleaseenterday,month,andyearnumbers:)4.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输入输出操作date1=str(month)+/+str(day)+/+str(year)months=January,February,March,April,May,June,July,August,September,Octo

24、ber,November,DecembermonthStr=monthsmonth-1date2=monthStr+str(day)+,+str(year)printThedateis,date1,or,date2+.4.3字符串描述和信息编码字符串描述和信息编码4.3.2字符串输入输出操作字符串输入输出操作v程序运行结果:程序运行结果:Pleaseenterday,month,andyearnumbers:13,11,2003Thedateis11/13/2003orNovember13,2003.4.4文件处理文件处理4.4.1多行字符串处理多行字符串处理v常规换行符常规换行符(规定为规定

25、为n)表示换行表示换行printHellonWorldnnGoodbye32nHelloWorldGoodbye324.4文件处理文件处理4.4.1多行字符串处理多行字符串处理v在在shell中输入包含换行符的字符串,只能得到带中输入包含换行符的字符串,只能得到带有换行字符的字符串有换行字符的字符串HellonWorldnnGoodbye32nHellonWorldnnGoodbye32n4.4文件处理文件处理4.4.2文件的输入输出文件的输入输出v文件的操作:文件的操作:n打开文件n操作文件对象(读取、写入)n关闭文件v当写入信息到文件对象时,只有在文件关闭后磁当写入信息到文件对象时,只有在

26、文件关闭后磁盘上的文件才会显示变化。盘上的文件才会显示变化。4.4文件处理文件处理4.4.2文件的输入输出文件的输入输出vopen():创建文件对象:创建文件对象=open(,)vname参数为字符串格式,表示磁盘文件名字。参数为字符串格式,表示磁盘文件名字。v参数参数mode表示打开模式,具体描述见下表。表示打开模式,具体描述见下表。4.4文件处理文件处理4.4.2文件的输入输出文件的输入输出4.4文件处理文件处理4.4.2文件的输入输出文件的输入输出vPython读取文件相关的操作读取文件相关的操作4.4文件处理文件处理4.4.2文件的输入输出文件的输入输出v例例1:应用读操作将文件内容输

27、出到屏幕上:应用读操作将文件内容输出到屏幕上#printfile.pydefmain():fname=raw_input(Enterfilename:)infile=open(fname,r)data=infile.read()print(data)main()4.4文件处理文件处理4.4.2文件的输入输出文件的输入输出vReadline()操作:读取文件的下一行操作:读取文件的下一行vraw_input():得到用户输入每一行的值。:得到用户输入每一行的值。v区别:区别:readline()函数的返回值以换行符结束,函数的返回值以换行符结束,raw_input()操作读取的字符舍弃了换行符。

28、操作读取的字符舍弃了换行符。4.4文件处理文件处理4.4.2文件的输入输出文件的输入输出v例例2:输出文件前:输出文件前5行内容行内容v方法方法1:infile=open(someFile,r)foriinrange(5):line=infile.readline()printline:-1v或者直接打印每一行,不用输出函数进行换行。或者直接打印每一行,不用输出函数进行换行。printline,4.4文件处理文件处理4.4.2文件的输入输出文件的输入输出v方法方法2:v使用使用readlines()方法读入文件,遍历整个文件方法读入文件,遍历整个文件内容内容infile=open(someFi

29、le,r)forlineininfile.readlines():#处理一行数据infile.close()v缺点:读入文件非常大时,一次性读取内容到列缺点:读入文件非常大时,一次性读取内容到列表中会占用很多的内存表中会占用很多的内存4.4文件处理文件处理4.4.2文件的输入输出文件的输入输出v方法方法3:vPython将文件本身作为一个行的序列将文件本身作为一个行的序列infile=open(someFile,r)forlineininfile:#处理一行数据infile.close()4.4文件处理文件处理4.4.2文件的输入输出文件的输入输出v文件写入操作文件写入操作n文件名称不存在,创

30、建一个新文件n文件名的文件存在,将删除它并创建一个新的空文件outfile=open(mydata.out,w)4.4文件处理文件处理4.4.2文件的输入输出文件的输入输出v使用输出语句写入信息到文本文件使用输出语句写入信息到文本文件printoutputFile,.voutputFile指定要写入的文件名指定要写入的文件名v补充例子:补充例子:将源文件中的小写字母全变为大写字将源文件中的小写字母全变为大写字母存入另一个文件母存入另一个文件第58页第三次课小结第三次课小结熟悉字符串类型熟悉字符串类型熟悉字符串类型熟悉字符串类型熟练掌握字符串各种操作熟练掌握字符串各种操作熟练掌握字符串各种操作熟练掌握字符串各种操作掌握文件的基本操作掌握文件的基本操作掌握文件的基本操作掌握文件的基本操作重点是会处理文本文件重点是会处理文本文件重点是会处理文本文件重点是会处理文本文件592024/8/312024/8/3159592008.05v谢谢大家!谢谢大家!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号