CT04字符串计算

上传人:痛*** 文档编号:244582153 上传时间:2024-10-05 格式:PPT 页数:27 大小:159KB
返回 下载 相关 举报
CT04字符串计算_第1页
第1页 / 共27页
CT04字符串计算_第2页
第2页 / 共27页
CT04字符串计算_第3页
第3页 / 共27页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Lu Chaojun,SJTU,*,字符串计算,文本数据,计算机应用从科学计算转向信息管理,.,信息管理中大量的数据都是文本数据,.,如姓名,地址,简历等等,小问题,:,身份证号码,电话号码等是数值,?,计算机中用字符串来表示文本数据,.,Lu,Chaojun,SJTU,2,字符串类型,字符串:字符序列,字符串字面值:用一对引号(单或双)标明.,“,hello world”,!#$%&*,“汉字也是字符,”,字符串中包含引号怎么办?,包含单引号:串用双引号括住,包含双引号:串用单引号括住,两者都有:更一般的方法是串中用,escape,字符,print“Alice said,“Hello,Bob”,Lu,Chaojun,SJTU,3,字符串的输入,错误输入,:,str,=input(“Enter a string:“),Enter a string:John,原因,:,input(),是把输入当成表达式来计算的,!,解决方法,:,输入时加上引号,使用,raw_input(),Lu,Chaojun,SJTU,4,input,与,raw_input,例,:,比较,x=input()x=raw_input(),“John”John,x x,x=input()x=raw_input(),3*4+2 3*4+2,x x,可见,raw_input(),将输入当成字符串数据,.,Lu,Chaojun,SJTU,5,字符串操作:取字符,字符串是字符序列,可通过位置索引访问每个字符.,对长度为,n,的字符串,索引可以,是大于0的数:自左向右为0,n,1,或者,是负数:自右向左为,1,2,3,n,例如:若,str,=“Hello Bob”,则,str,0,或,str,9,是,H,str,5,或,str,4,是,str,8,或,str,1,是,b,str,9,或,str,10,越界出错,字符串操作:取子串,切段:取一个索引范围内的字符.,:,所取子串:位置索引从,start end,1,start,或,/,和,end,可省略,缺省值为串的首尾,例如:若,str,=“Hello Bob”,则,str,0:3,是,Hel,str,5:9,是,Bob,str,:5,即,str,0:5,str,5:,即,str,5,9,str,:,即,str,0:9,字符串操作:连接,两字符串的连接,+,例如:,“Hello”+“Bob”,得到“,HelloBob,”,一个字符串的重复,例如:,3*“,Hi”,和“,Hi”*3,都得到“,HiHiHi,”,串长度函数,len,(),编程实例:表查找,在一个数据表里查找目标,def main():,months=“,JanFebMarAprMayJunJulAugSepOctNovDec,”,n=input(“Enter month number(1-12):”),pos=(n-1)*3,monthAbbr,=monthspos:pos+3,print“The month abbreviation is”,monthAbbr,+”.”,这是简单查找:利用位置规律来定位.,例如:定长记录文件.,若是月份全称怎么办?,字符串的机内表示,与数值一样,计算机内用二进制数表示每一个字符.,因此操作字符串本质上仍然是数值运算.,表示字符的这个数值称为字符的编码.,这与密码通信的做法是一样的.,问题:计算机采用什么字符集?其中每个字符用什么编码?,对这个问题的不同回答就导致了许多不同的字符编码系统.,例如:字符集只包含,AZ,分别用126表示.,“8 5 12 12 15”是什么意思?,编码标准,不同计算机若用不同编码体系,则彼此无法沟通.,标准化,ASCII:,单字节编码,只用到7位:0127,96个可打印字符,32个控制字符,利用8位可扩充,ASCII:0255,GB2312:,两字节(6763个汉字),GB18030:,最多四字节(70244个汉字),Unicode:,最多四字节.,字符与编码,求给定字符的编码:,ord,(),ord,(a),可得97,求给定编码的字符:,chr,(),chr,(97),可得,a,可见,Python 2.7,支持,ASCII.,支持中文编码吗?,”,你好,”,print“,你好”,编程实例:编码与解码,编码,message=raw_input(“Enter the message to encode:“),for,ch,in message:,print,ord,(,ch,),解码,code=raw_input(“Enter the code of message:“),message=“”,for,numStr,in,string.split,(code):,num=,eval,(,numStr,),message=message+,chr,(num),print“The decoded message is:”,message,字符串库,Python,提供的,string,库包含了很多有用的字符串处理函数,例如,split(),:,将字符串拆分成子串,string.split(“Hello string library!”),返回结果:,Hello,string,library!,string.split(“32,24,25,57”,”,”),返回结果:,32,24,25,57,字符串库(续),一些常用函数,capitalize(s):,使,s,首字母大写,capwords,(s):,使,s,的每个单词首字母大写,center(s,width),ljust,(s,width),rjust,(s,width):,使,s,变成,width,宽度且居中/左对齐/右对齐,count(s,sub):sub,在,s,中出现次数,find(s,sub),rfind,(s,sub):,在,s,中找,sub,的首次/末次出现,join(,seq,):,将串序列中的串合并成一个串,分隔符默认为空格,lower(s),upper(s):,将串变成小写/大写,lstrip,(s),rstrip,(s):,删除打头/收尾的空格,replace(s,oldsub,newsub,):,在,s,中用新子串替换旧子串,从,编码到密码,字符编码都是工业标准,不是为了保密目的.,密码:为了保密而对信息进行编码.,福尔摩斯探案:跳舞的小人.,明文,密文,加密,解密,数值与字符串的互相转换,eval,(),函数:将字符串当作数值表达式进行计算.,语法:,eval,(),例如:,eval,(“3+4*5”),str,(),函数:将数值当作字符串,语法:,str,(),例如:,str,(3+4*5),字符串的格式化输出,格式化运算符%,语法,%(),语义:模板串中用%标记“空位”,输出时用实际值填入.,例如,print“The price is$,%0.2f,”%(100),格式描述,空位:格式指示符,描述了填入的值的输出形式.,%.,三种类型字符:,d,ecimal,f,loat,s,tring,宽度:用多少位置显示数值.,省略或指定为0:根据值的实际长度显示.,宽度超出值的长度时:右对齐显示,宽度前加负号:左对齐.,对浮点数用超长宽度会怎样?试试,精度:指示浮点数值的小数位数.,省略:按系统默认的小数位数显示.,print“%f”%(math.pi),编程实例:浮点数如何精确化?,浮点数的机内表示是近似值.,银行应用要求精确表示金额,故不宜用浮点数及浮点运算.,解决办法:以“分”为单位,用整数表示金额.,设金额是,x,分,输出时利用,x/100,和,x%100,分别得到“元”和“角分”.,print“You have%d.%02d”%,(x/100,x%100),02d:,不足2位用0填充,:语句换行继续,文件处理,文件,:,存储在磁盘上的数据序列,.,典型的文件结构,:,基本数据项,:,可为任何类型,若干数据项构成记录,若干记录构成文件,例如,:,学生基本数据项,:,学号,姓名,年龄,一个学生记录,:,学号,姓名,年龄,文件,:,全体学生记录,Lu,Chaojun,SJTU,21,文本文件,文件中是文本数据,文本文件可视为存储在磁盘上的字符串,.,单行字符串,多行字符串,行尾,(EOL):,用特殊字符,如新行,(,newline,),字符,.,Python,用,n,表示新行字符,该字符在显示时被解释成新行字符,.,例,:,print“first line,n,second,line”,Lu,Chaojun,SJTU,22,文件处理,:,打开文件,打开文件,:,将磁盘文件与一个程序变量关联,做好读写准备,.,=open(,),:“r”,或,“w”,例如,infile,=open(“,myfile,”,“r”),outfile,=open(“,myfile,”,“w”),写打开时小心文件名,!,因为可能破坏现有文件,Lu,Chaojun,SJTU,23,文件处理,:,读写文件,读文件,:,读出文件内容,.read(),.,readline,(),.,readlines,(),点表示法,:,文件是对象,!,写文件,:,将新内容写入文件,.,.write(),若想写多行内容,需写入,n,Lu,Chaojun,SJTU,24,文件处理,:,关闭文件,关闭文件,:,取消文件变量与磁盘文件的关联,.,.close(),关闭文件时,系统会将内存中文件内容输出到磁盘,.,Lu,Chaojun,SJTU,25,编程实例,:,批处理,通过文件实现成批数据的输入输出,这种情况不适合用交互方式输入,infile,=open(,infileName,r),outfile,=open(,outfileName,w),for line in,infile,.,readlines,():,first,last=string.split(line),uname,=string.lower(first0+last:7),outfile,.write(,uname,+n),infile,.close(),outfile,.close(),Lu,Chaojun,SJTU,26,End,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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