20170729Python03_字符串

来源:互联网 发布:c语言头文件stdio 编辑:程序博客网 时间:2024/06/07 15:37

Lesson003_字符串:

1:计算机最开始的设计是只有英语和各种标点符号,即ASCII码,计算机里面不能存储其他国家的文字,后来最开始出问题的是日文,因此就开始设计多种语言版本的。
2:世界标准组织除了一套标准:UNICODE,将所有国家的文字集中在一起了,把所有文字存储在UNICODE表里面,UNICODE可以存储65535个字符。
3:UNICODE每一个字符所占的空间比较大,会导致网络传输的时候需要的资源比较多。后来在UNICODE之上,出现了UTF编码,
他的长度是可变的,有UTF-8,UTF-16,UTF-32
4:UTF编码好处在于传输效率高,但是缺点在于解析比较麻烦,因此,目前本机使用都是UNICODE编码,传输的时候会转换成UTF编码,接收后又转换成UNICODE编码。
5:在Python里面,可以使用ord和chr来查看字符对应的ASCII数值和数值对应的字符:
>>> ord('a')97>>> ord('A')65>>> chr(98)'b'>>> chr(66)'B'>>> chr(77)+chr(97)#字符串连接'Ma'>>> ord("蒲")33970>>> ord("公")20844>>> ord("英")33521

6:Python3默认是使用的UNICODE编码的,记事本等默认都是ANSI编码的,如果我们需要在Python里面使用ANSI编码,可以这样做:
>>> name = "蒲公英">>> name.encode('ANSI')b'\xc6\xd1\xb9\xab\xd3\xa2'>>> name = 'abc'>>> name.encode("ascii")b'abc'>>> name.encode("ANSI")b'abc'

注意,b代表byte。也可以直接使用byte的字符串,例如:
>>> name = b'aaabbbcccddd'>>> nameb'aaabbbcccddd'


7:将string转换成byte用的encode,也可以将byte转化为字符串,使用decode。
>>> name = '蒲'>>> name.encode('utf-8')b'\xe8\x92\xb2'>>> cname = b'\xe8\x92\xb2'>>> cname.decode('utf-8')'蒲'>>> name.encode('utf-16')b'\xff\xfe\xb2\x84'>>> cname = b'\xff\xfe\xb2\x84'>>> cname.decode('utf-16')'蒲'

8:len()函数可以统计字符数,
>>> name = '16794641698789468489'>>> len(name)20>>> name = '艺术'>>> len(name)2>>> name = b'1234567890'>>> len(name)10>>> name = '试试'>>> name.encode()#默认为utf-8b'\xe8\xaf\x95\xe8\xaf\x95'>>> name = b'\xe8\xaf\x95\xe8\xaf\x95'>>> len(name)#这里是按字符数显示的。6

9:数据类型里面,bool类型用于判断