字符串类型和编码

2019-02-20  本文已影响0人  刘磊_3a3b

Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes,Python对bytes类型的数据用带b前缀的单引号或双引号表示:x =b'ABC'。

1.str和bytes的相互转化

    str通过encode()方法可以编码为指定的bytes,例如:

            >>> 'ABC'.encode('ascii')

            b'ABC'

            >>> '中文'.encode('utf-8')

            b'\xe4\xb8\xad\xe6\x96\x87'

     bytes通过decode()方法转成str,例如:

            >>> b'ABC'.decode('ascii')

            'ABC'

            >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')

            '中文'

2.py文件编码

    在py文件第一行申明字符集编码,一般使用utf-8编码,例如:# -*- coding: utf-8 -*-       

3.格式化

            我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格   式化字符串的方式。

在python中使用%来实现,%运算符就是用来格式化字符串的。%s表示用字符串替换,%d表示用整数替换。%f表示用浮点数替换,%x表示用十六进制整数替换。如果有多个%,后面就要有几个值,且顺序要一致。

例如:

>>> 'Hello, %s'%'world''

Hello, world'

>>> 'Hi, %s, you have $%d.'% ('Michael',1000000)

'Hi, Michael, you have $1000000.'

4.字符串截取

(1)截取单个字符,例如  'hello world'[1] 表示截取截取字符串的第二位

        'hello world'[-1]表示截取字符串从末尾往前数1位得到的字符

(2)截取多个字符串(包前不包后)

       'hello world'[a:b] (a b为>0)表示截取字符串的下标为a到下标为b(不包含下标b)

       'hello world'[a:-1] (a b为>0)表示截取字符串的下标为a到最后一位   (不包含最后一位)

        ‘hello world’[a:]   表示从下标a开始截取到最后(包含最后一位)

         ‘hello world’[:b]   表示从下标0开始截取到下标b(不包含b)

上一篇下一篇

猜你喜欢

热点阅读