zoukankan      html  css  js  c++  java
  • python字符串


    一、字符编码问题

      1. 在python3中,字符串是以Unicode编码的,也就是说python的字符串支持多语言。对于单个字符的编码,python提供了_ord()_ 函数来获取字符的整数表示,chr() 函数则是把编码转换为对应的字符,比如:

    >>>ord('A')
    65
    >>>ord('中')
    20013
    
    >>>chr(66)
    'B'
    >>>chr(25991)
    '文'
    
    1. 由于python的字符串类型是str,在内存中是以Unicode来表示的,一个字符对应于若干个字节。如果要在网络上传输或者保存到磁盘上,则需要将str变为以字节为单位的bytes,bytes的每个字符都只占用一个字节 python对bytes类型的数据用带b前缀的单引号或双引号表示:

    x=b'abc'

    1. 编码与解码方法:以Unicode表示的str可以通过encode()方法来编码为制定的bytes,比如:
    >>>'abc'.encode('ascii')
    b'abc'
    >>>'中文'.encode('utf-8')
    b'xe4xb8xadxe6x96x87' # 十六进制表示
    >>>'中文'.encode('ascii')
    error:UnicodeEncodeError: 'ascii' codec 
    can't encode characters in position 0-1: ordinal not in range(128)
    

     注意: 纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str则可以用UTF-8编码为bytes,而含有中文的str是无法用ASCII编码的,因为中文编码的范围超过了ASCII编码的范围,python会报错。
      如果我们从网络或磁盘上读取了字节流也就是bytes格式的数据,则需要使用decode()方法来进行解码:

    >>>b'abc'.decode('ascii')
    'abc'
    >>>b'xe4xb8xadxe6x96x87'.decode('utf-8')
    '中文'
    

     4. 获取str字符数或字节数方法:通过len()函数我们可以来计算出str的字符数或者bytes的字节数:

    >>>len('abc')
    3
    >>>len('中文')
    2
    
    >>>len(b'abc')                    # 一个英文字符经过utf-8编码后只占一个字节
    3
    >>>len(b'xe4xb8xadx96x87')
    6
    >>>len('中文'.encode('utf-8'))    # 一个中文字符经过Utf-8编码后通常会占用3个字节
    6
    

      **注意: ** 在操作字符串时,我们可能会经常遇到str和bytes之间的相互转换,为了避免乱码问题,应当始终坚持使用utf-8进行编码对str和bytes进行转换。

    二、格式化问题

      在python中,采用的格式化方式和C语言是一致的,用%来实现,其常见的占位符有:

    整数 浮点数 字符串 十六进制整数
    %d %f %s %x

      其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

    >>>'%2d和%02d' % (3,1)
    ' 3和01'
    >>>'%.2f' % 3.1415926
    '3.14'
    

      如果不确定应该用什么格式的时候记住%s永远起作用,它会把任何数据类型转换为字符串:

    >>>'Age: %s. Gender:%s' % (25,True)
    'Age:25.Gender:True'
    

      有时候,字符串里面的%是一个普通字符,这个时候就需要转义了,用%%来表示一个%:

    >>>'growth rate: %d %%' % 7
    'growth rate:7 %'
    
  • 相关阅读:
    Mybatis 学习过程中出现空指针异常的错误【已解决】
    IntelliJ IDEA的常用设置及快捷键
    The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone错误的解决办法【已解决】
    IntelliJ IDEA安装教程及使用方法
    OA项目笔记
    Linux常用命令大全(四)
    Linux常用命令大全(三)
    Linux常用命令大全(二)
    Linux常用命令大全(一)
    Apache配置默认首页
  • 原文地址:https://www.cnblogs.com/xipuhu/p/7456588.html
Copyright © 2011-2022 走看看