CT04字符串计算.ppt

上传人:s****8 文档编号:69351596 上传时间:2023-01-02 格式:PPT 页数:27 大小:159KB
返回 下载 相关 举报
CT04字符串计算.ppt_第1页
第1页 / 共27页
CT04字符串计算.ppt_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《CT04字符串计算.ppt》由会员分享,可在线阅读,更多相关《CT04字符串计算.ppt(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、字符串计算文本数据计算机应用从科学计算转向信息管理.信息管理中大量的数据都是文本数据.如姓名,地址,简历等等小问题:身份证号码,电话号码等是数值?计算机中用字符串来表示文本数据.Lu Chaojun,SJTU 2字符串类型字符串:字符序列字符串字面值:用一对引号(单或双)标明.“hello world”!#$%&*“汉字也是字符”字符串中包含引号怎么办?包含单引号:串用双引号括住包含双引号:串用单引号括住两者都有:更一般的方法是串中用escape字符print“Alice said,“Hello,Bob”Lu Chaojun,SJTU 3字符串的输入错误输入:str=input(“Enter

2、a string:“)Enter a string:John原因:input()是把输入当成表达式来计算的!解决方法:输入时加上引号使用raw_input()Lu Chaojun,SJTU 4input与raw_input例:比较x=input()x=raw_input()“John”Johnx xx=input()x=raw_input()3*4+2 3*4+2x x可见raw_input()将输入当成字符串数据.Lu Chaojun,SJTU 5字符串操作:取字符字符串是字符序列,可通过位置索引访问每个字符.对长度为n的字符串,索引可以是大于0的数:自左向右为0 n1,或者是负数:自右向左

3、为1,2,3,n 例如:若str=“Hello Bob”,则str0或str9是Hstr5或str4是 str8或str1是bstr9或str10越界出错字符串操作:取子串切段:取一个索引范围内的字符.:所取子串:位置索引从start end1start或/和end可省略,缺省值为串的首尾例如:若str=“Hello Bob”,则str0:3是Helstr5:9是 Bobstr:5即str0:5str5:即str5,9str:即str0:9字符串操作:连接两字符串的连接+例如:“Hello”+“Bob”得到“HelloBob”一个字符串的重复例如:3*“Hi”和“Hi”*3都得到“HiHiHi

4、”串长度函数len()编程实例:表查找在一个数据表里查找目标def main():months=“JanFebMarAprMayJunJulAugSepOctNovDec”n=input(“Enter month number(1-12):”)pos=(n-1)*3monthAbbr=monthspos:pos+3print“The month abbreviation is”,monthAbbr+”.”这是简单查找:利用位置规律来定位.例如:定长记录文件.若是月份全称怎么办?字符串的机内表示与数值一样,计算机内用二进制数表示每一个字符.因此操作字符串本质上仍然是数值运算.表示字符的这个数值称

5、为字符的编码.这与密码通信的做法是一样的.问题:计算机采用什么字符集?其中每个字符用什么编码?对这个问题的不同回答就导致了许多不同的字符编码系统.例如:字符集只包含AZ,分别用126表示.“8 5 12 12 15”是什么意思?编码标准不同计算机若用不同编码体系,则彼此无法沟通.标准化ASCII:单字节编码只用到7位:012796个可打印字符,32个控制字符利用8位可扩充ASCII:0255GB2312:两字节(6763个汉字)GB18030:最多四字节(70244个汉字)Unicode:最多四字节.字符与编码求给定字符的编码:ord()ord(a)可得97求给定编码的字符:chr()chr(

6、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:”,

7、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宽度且居中/左对齐/右对齐cou

8、nt(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()例如:eva

9、l(“3+4*5”)str()函数:将数值当作字符串语法:str()例如:str(3+4*5)字符串的格式化输出格式化运算符%语法%()语义:模板串中用%标记“空位”,输出时用实际值填入.例如print“The price is$%0.2f”%(100)格式描述空位:格式指示符,描述了填入的值的输出形式.%.三种类型字符:decimal,float,string宽度:用多少位置显示数值.省略或指定为0:根据值的实际长度显示.宽度超出值的长度时:右对齐显示宽度前加负号:左对齐.对浮点数用超长宽度会怎样?试试精度:指示浮点数值的小数位数.省略:按系统默认的小数位数显示.print“%f”%(mat

10、h.pi)编程实例:浮点数如何精确化?浮点数的机内表示是近似值.银行应用要求精确表示金额,故不宜用浮点数及浮点运算.解决办法:以“分”为单位,用整数表示金额.设金额是x分,输出时利用x/100和x%100分别得到“元”和“角分”.print“You have%d.%02d”%(x/100,x%100)02d:不足2位用0填充:语句换行继续文件处理文件:存储在磁盘上的数据序列.典型的文件结构:基本数据项:可为任何类型若干数据项构成记录若干记录构成文件例如:学生基本数据项:学号,姓名,年龄一个学生记录:学号,姓名,年龄文件:全体学生记录Lu Chaojun,SJTU 21文本文件文件中是文本数据文

11、本文件可视为存储在磁盘上的字符串.单行字符串多行字符串行尾(EOL):用特殊字符,如新行(newline)字符.Python用n表示新行字符,该字符在显示时被解释成新行字符.例:print“first linensecond line”Lu Chaojun,SJTU 22文件处理:打开文件打开文件:将磁盘文件与一个程序变量关联,做好读写准备.=open(,):“r”或“w”例如infile=open(“myfile”,“r”)outfile=open(“myfile”,“w”)写打开时小心文件名!因为可能破坏现有文件Lu Chaojun,SJTU 23文件处理:读写文件读文件:读出文件内容.r

12、ead().readline().readlines()点表示法:文件是对象!写文件:将新内容写入文件.write()若想写多行内容,需写入nLu 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 26End

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

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com