Python程序设计董付国(第二版)第4章字符串与正则表达式.pptx
第4章字符串与正则表达式
4.1字符串?最早的字符串编码是美国标准信息交换码ASCII,仅对10个数字、26个大写英文字母、26个小写英文字母及一些其他符号进行了编码。ASCII码采用1个字节来对字符进行编码,最多只能表示256个符号。
4.1字符串?随着信息技术的发展和信息交换的需要,各国的文字都需要进行编码,不同的应用领域和场合对字符串编码的要求也略有不同,于是又分别设计了多种不同的编码格式,常见的主要有UTF-8、UTF-16、UTF-32、GB2312、GBK、CP936、base64、CP437等等。
4.1字符串?UTF-8对全世界所有国家需要用到的字符进行了编码,以1个字节表示英语字符(兼容ASCII),以3个字节表示中文,还有些语言的符号使用2个字节(例如俄语和希腊语符号)或4个字节。?GB2312是我国制定的中文编码,使用1个字节表示英语,2个字节表示中文;GBK是GB2312的扩充,而CP936是微软在GBK基础上开发的编码方式。GB2312、GBK和CP936都是使用2个字节表示中文。
4.1字符串?不同编码格式之间相差很大,采用不同的编码格式意味着不同的表示和存储形式,把同一字符存入文件时,写入的内容可能会不同,在试图理解其内容时必须了解编码规则并进行正确的解码。如果解码方法不正确就无法还原信息,从这个角度来讲,字符串编码也具有加密的效果。
4.1字符串?Python3.x完全支持中文字符,默认使用UTF8编码格式,无论是一个数字、英文字母,还是一个汉字,都按一个字符对待和处理。s=中国山东烟台len(s)#字符串长度,或者包含的字符个数6s=中国山东烟台ABCDE#中文与英文字符同样对待,都算一个字符len(s)11姓名=张三#使用中文作为变量名print(姓名)#输出变量的值张三
4.1字符串?在Python中,字符串属于不可变序列类型,除了支持序列通用方法(包括分片操作)以外,还支持特有的字符串操作方法。
4.1字符串?Python字符串驻留机制:对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本。长字符串不遵守驻留机制。
4.1.1字符串格式化
4.1.1字符串格式化?常用格式字符格式字符说明%s%r%c%b%d%i%o%x%e%E%f、%F、%F%g%G%%字符串(采用str()的显示)字符串(采用repr()的显示)单个字符二进制整数十进制整数十进制整数八进制整数十六进制整数指数(基底写为e)指数(基底写为E)浮点数指数(e)或浮点数(根据显示长度)指数(E)或浮点数(根据显示长度)字符%%
4.1.1字符串格式化x=1235so=%o%xso2323sh=%x%xsh4d3se=%e%xse1.235000e+03chr(ord(3)+1)4%s%6565%s%6533365333%d%555TypeError:%dformat:anumberisrequired,notstr
4.1.1字符串格式化int(555)555%s%[1,2,3][1,2,3]str((1,2,3))(1,2,3)str([1,2,3])[1,2,3]
4.1.1字符串格式化?使用format方法进行格式化print(Thenumber{0:,}inhexis:{0:#x},thenumber{1}inoctis{1:#o}.format(5555,55))print(Thenumber{1:,}inhexis:{1:#x},thenumber{0}inoctis{0:#o}.format(5555,55))print(is{name},myageis{age},andmyQQis{qq}.format(name=DongFuguo,age=37,qq=306467355))position=(5,8,13)print(X:{0[0]};Y:{0[1]};Z:{0[2]}.format(position))
4.1.1字符串格式化weather=[(Monday,rain),(Tuesday,sunny),(Wednesday,sunny),(Thursday,rain),(Friday,Cloudy)]formatter=Weatherof{0[0]}is{0[1]}.formatforiteminmap(formatter,weather):print(item)forite