资源描述:
《Python讲义45章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、程序设计思想与方法4~5章潘理Email:panli@sjtu.edu.cn2课件及有关资料ftp://public.sjtu.edu.cn/用户名:panli密码:publicftp://panli:public@public.sjtu.edu.cn字符串处理文本数据简单的字符串处理字符串的机内表示字符串和密码格式化输出文件处理文本数据计算机应用从科学计算转向信息管理.信息管理中大量的数据都是文本数据.如姓名,地址,简历等等计算机中用字符串来表示文本数据.4字符串类型字符串:字符序列字符串字面值:用一对引号(单或双)标明.“helloworld”‘~!@#$%^
2、&*’“汉字也是字符”字符串中包含引号怎么办?包含单引号:串用双引号括住包含双引号:串用单引号括住两者都有:更一般的方法是串中用转义字符print“Alicesaid,“Hello,’Bob’””LuChaojun,SJTU5字符串处理文本数据简单的字符串处理字符串的机内表示字符串和密码格式化输出文件处理字符串的输入普通变量的输入>>>num=input(“Enteranumber:“)Enteranumber:5.6变量num得到值5.6如果用同样的方法输入字符串>>>str=input(“Enterastring:“)Enterastring:JohnP
3、ython会输出出错信息原因:input()是把输入当成表达式来计算的!LuChaojun,SJTU7字符串的正确输入输入时加上引号>>>str=input(“Enterastring:“)Enterastring:‘John’Enterastring:“John”使用raw_input()str=raw_input(“Enterastring:“)Enterastring:Johninput与raw_input>>>x=input()>>>x=raw_input()“John”John>>>x>>>x‘John’‘John’>>>x=input()>>>x=ra
4、w_input()3*4+23*4+2>>>x>>>x143*4+2LuChaojun,SJTU9字符串赋值字符串可以直接赋值>>>Str=‘abcde’>>>Str‘abcde’取字符字符串是字符序列,可通过位置索引访问每个字符.[]对长度为n的字符串,索引可以是大于0的数:自左向右为0~n1,或者是负数:自右向左为1,2,3,…,n例如:若str=“HelloBob”,则str[0]或str[9]是‘H’str[5]或str[4]是‘’str[8]或str[1]是‘b’str[9]或str[10]越界出
5、错取子串切段:取一个索引范围内的字符.[:]所取子串:位置索引从start~end1start或/和end可省略,缺省值为串的首尾例如:若str=“HelloBob”,则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()编程实
6、例:获得每个月份的缩写在一个数据表里查找目标defmain():months=“JanFebMarAprMayJunJulAugSepOctNovDec”n=input(“Entermonthnumber(1-12):”)pos=(n-1)*3monthAbbr=months[pos:pos+3]print“Themonthabbreviationis”,monthAbbr+”.”这是简单查找:利用位置规律来定位.若是月份全称怎么办?字符串处理文本数据简单的字符串处理字符串的机内表示字符串和密码格式化输出文件处理字符串的机内表示与数值一样,计算机内用二进制数表示每
7、一个字符因此操作字符串本质上仍然是数值运算.表示字符的这个数值称为字符的编码.每个字符用什么编码?对这个问题的不同回答就导致了许多不同的字符编码系统例如:字符集只包含A~Z,分别用1~26表示.“85121215”是什么意思?编码标准不同计算机若用不同编码体系,则彼此无法沟通。标准化ASCII:单字节编码只用到7位:0-12796个可打印字符,32个控制字符利用8位可扩充ASCII:0-255GB2312:两字节(6763个汉字)GB18030:最多四字节(70244个汉字)Unicode:最多四字节.字符与编码求给定字符的编码:ord()ord(‘a’)可得97
8、求给定编码