您的位置:首页 > 编程语言 > Python开发

20170729Python03_字符串

2017-07-29 22:40 176 查看

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'
>>> name
b'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-8
b'\xe8\xaf\x95\xe8\xaf\x95'
>>> name = b'\xe8\xaf\x95\xe8\xaf\x95'
>>> len(name)#这里是按字符数显示的。
6


9:数据类型里面,bool类型用于判断
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息