Python第三次理论课ppt课件_第1页
Python第三次理论课ppt课件_第2页
Python第三次理论课ppt课件_第3页
Python第三次理论课ppt课件_第4页
Python第三次理论课ppt课件_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、12008.0522008.05第3页3本次课主要内容理解字符串数据类型理解字符串数据类型及其在计算机中的表示及其在计算机中的表示一掌握常用的字符串处理方法掌握常用的字符串处理方法二掌握字符串的编码和格式化方法掌握字符串的编码和格式化方法四掌握掌握 Python 字符串文件和二进制字符串文件和二进制的输入出方法的输入出方法三第4页4.1 字符串数据类型字符串数据类型v 字符串字符串(常量常量)是用双引号是用双引号或者单引号或者单引号括起来的一个或多个字符。括起来的一个或多个字符。v 字符串可以保存在变量中。变量可以通过赋值或读入获得值字符串可以保存在变量中。变量可以通过赋值或读入获得值v 字符

2、串的两种形式:字符串的两种形式: str1 = Hello str2 = John print str1,str2Hello John type(str1)第5页4.1 字符串数据类型字符串数据类型v 输入对任何用户输入类型均返回一个字符串对象。输入对任何用户输入类型均返回一个字符串对象。v 用用raw_input()函数获取用户输入的字符:函数获取用户输入的字符: name = raw_input(Please enter your name: )Please enter your name: John print Hello, namev 将从键盘输入的字符串将从键盘输入的字符串John赋

3、值给了变量赋值给了变量name第6页4.1 字符串数据类型字符串数据类型v 索引字符在字符串里的位置。索引字符在字符串里的位置。v 对字符串中字符的位置进行标号,可以从左边开始标记为对字符串中字符的位置进行标号,可以从左边开始标记为0,其后的序号依次其后的序号依次+1;或者从右边开始标记为或者从右边开始标记为-1,其前的序号依次其前的序号依次-1 v Python中字符串索引从中字符串索引从0开始,一个长度为开始,一个长度为n的字符串最后一个字符的位置的字符串最后一个字符的位置是是n-1。v 如果最后一个字符从如果最后一个字符从-1开始开始,则一个长度为则一个长度为n 的字符串最前面一个字符的

4、位置是的字符串最前面一个字符的位置是-n。Hell0 John0123456789-10-9-8-7-6-5-4-3-2-1第7页4.1 字符串数据类型字符串数据类型v 索引用于在字符串表达式上访问某一特定位置的字符。索引用于在字符串表达式上访问某一特定位置的字符。v 其格式为其格式为。 greet = Hello John print greet0, greet2, greet4H l o x = 8 print greetx-2J print greet-3o第8页4.1字符串数据类型字符串数据类型v 剪切剪切访问连续的一段字符或子字符串访问连续的一段字符或子字符串v 即在字符串中索引一定

5、位置范围内的字符即在字符串中索引一定位置范围内的字符v 格式:格式:: 。start和和end都是都是int型表达式型表达式v 子序列从索引子序列从索引start位置开始直到索引位置开始直到索引end位置结束,不包括位置结束,不包括end位置的值位置的值 greet0:3Hel greet3:-3lo J第9页4.1 字符串数据类型字符串数据类型v 如果其中一个索引表达式缺失,则把开始或结束索引值设为默认值如果其中一个索引表达式缺失,则把开始或结束索引值设为默认值 greet:5Hello greet:Hello John greet4:o John第10页4.1 字符串数据类型字符串数据类型

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

7、例子:字符串操作综合例子: pine + applepineapple Pine + And + ApplePineAndApple 3 * pine pinepinepine第13页4.1 字符串数据类型字符串数据类型 apple * 5appleappleappleappleapple len(pine)4 len(PineAndApple )13第14页4.1 字符串数据类型字符串数据类型 for ch in Pine!:print ch P i n e !str.upper(abc)ABC第15页4.1 字符串数据类型字符串数据类型 str=a b c de print strip=%

8、s % (str.split()strip=a, b, c, de str= python String function print strip=%s % (str.strip()strip=python String function 第16页4.2 简单的字符串处理简单的字符串处理 v 例例1:生成计算机系统用户名的程序:生成计算机系统用户名的程序 。n要求:输入用户姓名,输出用户名字的首字母后面加上最多7位作为用户名。n举例:用户姓名为Alex Shoulson,生成的用户名为” AShoulson”;用户姓名为John Smith生成的用户名为” JSmith”。n代码:第17页4.

9、2 简单的字符串处理简单的字符串处理 # username.pyprint This program generates computer usernames.n # 输入姓名first = raw_input(Please enter your first name: )last = raw_input(Please enter your last name: )# 连接名字的字符uname = first0 + last:7 # 输出用户名print Your username is:, uname第18页4.2 简单的字符串处理简单的字符串处理 nraw_input()函数获得用户输入的

10、字符串n结合索引、剪切、加法操作生成用户名n运行结果:This program generates computer usernames.Please enter your first name: alexPlease enter your last name: shoulsonYour username is: ashoulso 第19页4.2 简单的字符串处理简单的字符串处理 v例例2:输出给定月份数字对应的月份名称缩写。:输出给定月份数字对应的月份名称缩写。n要求:输入一个表示月份的数字(112),输出其对应月份名称的缩写n举例:输入3,程序输出Mar. n方法:利用字符串剪切操作来实现

11、该功能将所有的月份名称储存在一个字符串中:months = “JanFebMarAprMayJunJulAugSepOctNovDec” 第20页4.2 简单的字符串处理简单的字符串处理 n在字符串中截取适当的子串来实现特定月份的查找问题的关键:找出在哪里剪切每个月的缩写都由3个字母组成,需要获得从起始位置pos开始且长度为3的子串:monthAbbrev = monthspos:pos+3第21页4.2 简单的字符串处理简单的字符串处理 npos位置的规律:月份的位置都是3的倍数。月 输入 位置Jan 1 0Feb 2 3Mar 3 6Apr 4 9第22页4.2 简单的字符串处理简单的字符

12、串处理 n将输入的月份减1再乘以3就能够等到正确的月份起始位置。n例如:输入1,计算(1-1)*3 = 0*3 = 0;输入12,计算(12-1)* 3 = 11*3 = 33。第23页4.2 简单的字符串处理简单的字符串处理 n代码:# month.py# 输出给定月份的缩写# 使用months作为查找表months = JanFebMarAprMayJunJulAugSepOctNovDecn = eval(raw_input(Enter a month number (1-12): )第24页4.2 简单的字符串处理简单的字符串处理 # 计算月份n在months中的位置pos = (n-

13、1) * 3# 计算需要剪切的字符串monthAbbrev = monthspos:pos+3# 输出结果print The month abbreviation is, monthAbbrev + .第25页4.2 简单的字符串处理简单的字符串处理 n程序运行结果:month.pyEnter a month number (1-12): 7The month abbreviation is Jul.n程序缺点:使用字符串作为查找表所剪切的子字符串长度必须相同(本程序中长度均为3)。n考虑如何实现程序输入月份数字,输出完整的月份名称。第26页4.3 字符串描述和信息编码字符串描述和信息编码4.

14、3.1 字符串编码字符串编码v ASCII (American Standard Code for Information Interchange) :行业标准编码。:行业标准编码。v ASCII用数字用数字0-127来表示常见的字符和控制代码来表示常见的字符和控制代码v 举例:大写字母举例:大写字母A-Z用用65-90表示,小写字母表示,小写字母a-z用用97-122表示。表示。v Unicode:国际标准化组织制定的更大的编码标准,几乎支持所有书写语言:国际标准化组织制定的更大的编码标准,几乎支持所有书写语言的字符。的字符。v Python字符串支持字符串支持Unicode标准标准第27页

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

16、nter the message to encode: )nfor循环来迭代处理输入信息中的每个字符:for ch in message:n利用ord()函数转换输入的字符串第29页4.3 字符串描述和信息编码字符串描述和信息编码4.3.1 字符串编码字符串编码v 程序代码:程序代码:# text2numbers.py# 使用Unicode编码将文本转换为数字,获取信息message = raw_input(Please enter a message to encode: )print(Here are the Unicode codes:)# 使用for循环输出每一个字符的unicode编

17、码for ch in message: print ord(ch), 第30页4.3 字符串描述和信息编码字符串描述和信息编码4.3.1 字符串编码字符串编码v 程序运行结果:程序运行结果: text2numbers.pyPlease enter a message to encode: Happy Halloween, John!Here are the Unicode codes:32 72 97 112 112 121 32 72 97 108 108 111 119 101 101 110 44 32 74 111 104 110 33第31页4.3 字符串描述和信息编码字符串描述和信

18、息编码4.3.1 字符串编码字符串编码v 注意:结果中输入的空格字符也被转换成相应的注意:结果中输入的空格字符也被转换成相应的Unicode数值。数值。v 空格对应的空格对应的Unicode数值是数值是32。第32页4.3 字符串描述和信息编码字符串描述和信息编码4.3.2 字符串输入输出操作字符串输入输出操作v eval()函数:将字符串转换为其他任何数据类型。函数:将字符串转换为其他任何数据类型。v 数值类型转换函数(数值类型转换函数(int(), float())将字符串转换为数字格式。)将字符串转换为数字格式。 int(3)3 float(3)3.0 float(3)3.0第33页4.

19、3 字符串描述和信息编码字符串描述和信息编码4.3.2 字符串输入输出操作字符串输入输出操作v 传递给转换函数的字符串必须是数字字符并且要与转换格式一致,否则程序传递给转换函数的字符串必须是数字字符并且要与转换格式一致,否则程序会报错会报错。 int(3.5)Traceback (most recent call last): File , line 1, in int(3.5)ValueError: invalid literal for int() with base 10: 3.5第34页4.3 字符串描述和信息编码字符串描述和信息编码4.3.2 字符串输入输出操作字符串输入输出操作v

20、使用使用eval()或或int()转换字符串为数字时,转换字符串为数字时, Python允许整数类型的文本输允许整数类型的文本输入以入以0作为开头作为开头。 int(007)7 int(05)5第35页4.3 字符串描述和信息编码字符串描述和信息编码4.3.2 字符串输入输出操作字符串输入输出操作 int(003)3 eval(05)5第36页4.3 字符串描述和信息编码字符串描述和信息编码4.3.2 字符串输入输出操作字符串输入输出操作v 例子:扩展前面月份缩写的例子实现日期转换。例子:扩展前面月份缩写的例子实现日期转换。n举例:输入“05/24/2003”,输出日期“May 24,2003

21、.”n算法:(1)输入日期,格式为:mm/dd/yyyy格式,并保存在dateStr变量中;(2)将dateStr分成月份、日期、年份的字符串(3)将月份的字符串转换为月份数字格式;第37页4.3 字符串描述和信息编码字符串描述和信息编码4.3.2 字符串输入输出操作字符串输入输出操作n算法:(4)利用数字月份查找这个月份的名称;(5)创建一个新的日期字符串, 格式为:月份,日期,年份(6)输出这个新的日期字符串第38页4.3 字符串描述和信息编码字符串描述和信息编码4.3.2 字符串输入输出操作字符串输入输出操作n以字符串格式接收输入的日期,并利用斜杠分离日期信息n将分离出来的月份、日期、年

22、份信息分别赋值给3个字符串变量monthStr, dayStr 和 yearStr。dateStr = raw_input(Enter a date (mm/dd/yyyy): )monthStr, dayStr, yearStr = dateStr.split(/)第39页4.3 字符串描述和信息编码字符串描述和信息编码 4.3.2 字符串输入输出操作字符串输入输出操作n利用int()函数将monthStr转换为数字n数字用于查找日期名称months = January, February, March, April,May, June, July, August,September, Oc

23、tober, November, DecembermonthStr = monthsint(monthStr)-1print The converted date is:, monthStr, dayStr+, yearStr第40页4.3 字符串描述和信息编码字符串描述和信息编码 4.3.2 字符串输入输出操作字符串输入输出操作nmonths的索引采用了表达式int(monthStr)-1因为:int(monthStr)取值为1到12,而索引months的取值范围是0到11,因此进行减1运算数字用于查找日期名称n程序运行结果:Enter a date (mm/dd/yyyy): 11/13/

24、2003The converted date is: November 13, 2003第41页4.3 字符串描述和信息编码字符串描述和信息编码4.3.2 字符串输入输出操作字符串输入输出操作v 大多数数据类型都可以通过大多数数据类型都可以通过str()函数转换为字符串函数转换为字符串v 转换函数:转换函数:第42页4.3 字符串描述和信息编码字符串描述和信息编码4.3.2 字符串输入输出操作字符串输入输出操作v 举例:输入日、月、年数字,以出两种格式日期举例:输入日、月、年数字,以出两种格式日期v 代码:代码:# dateConvert2.py# 将日期格式由mm/dd/yyyy 格式转换为

25、month day, year格式# 获取日期day, month, year = eval(raw_input(Please enter day, month, and year numbers: )第43页4.3 字符串描述和信息编码字符串描述和信息编码4.3.2 字符串输入输出操作字符串输入输出操作date1 = str(month)+/+str(day)+/+str(year)months = January, February, March, April,May, June, July, August,September, October, November, Decembermon

26、thStr = monthsmonth-1date2 = monthStr+ + str(day) + , + str(year)print The date is, date1, or, date2+. 第44页4.3 字符串描述和信息编码字符串描述和信息编码4.3.2 字符串输入输出操作字符串输入输出操作v 程序运行结果:程序运行结果:Please enter day, month, and year numbers: 13, 11, 2003The date is 11/13/2003 or November 13, 2003.第45页4.4 文件处理文件处理4.4.1多行字符串处理多行

27、字符串处理v 常规换行符常规换行符(规定为规定为n)表示换行表示换行 print HellonWorldnnGoodbye 32nHelloWorldGoodbye 32第46页4.4 文件处理文件处理4.4.1多行字符串处理多行字符串处理v 在在shell中输入包含换行符的字符串,只能得到带有换行字符的字符串中输入包含换行符的字符串,只能得到带有换行字符的字符串 HellonWorldnnGoodbye 32nHellonWorldnnGoodbye 32n第47页4.4 文件处理文件处理4.4.2 文件的输入输出文件的输入输出v 文件的操作:文件的操作:n打开文件n操作文件对象(读取、写入

28、)n关闭文件v 当写入信息到文件对象时,只有在文件关闭后磁盘上的文件才会显示变化。当写入信息到文件对象时,只有在文件关闭后磁盘上的文件才会显示变化。第48页4.4 文件处理文件处理4.4.2 文件的输入输出文件的输入输出v open():创建文件对象:创建文件对象 = open(, )v name参数为字符串格式,表示磁盘文件名字。参数为字符串格式,表示磁盘文件名字。v 参数参数mode表示打开模式,具体描述见下表。表示打开模式,具体描述见下表。第49页4.4 文件处理文件处理4.4.2 文件的输入输出文件的输入输出第50页4.4 文件处理文件处理4.4.2 文件的输入输出文件的输入输出v Python读取文件相关的操作读取文件相关的操作第51页4.4 文件处理文件处理4.4.2 文件的输入输出文件的输入输出v 例例1:应用读操作将文件内容输出到屏幕上:应用读操作将文件内容输出到屏幕上# printdef main(): fname = raw_input(Enter : ) infile = open(fname,r) data = in() print(data)main()第52页4.4 文件处理文件处理4.4.2 文件的输入输出文件的输入输出v Readline()操作:读取文件的下一行操作:读取文件的下一行v raw_input() :得到用户输入每

温馨提示

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

评论

0/150

提交评论