美文网首页
Python之字符串与编码

Python之字符串与编码

作者: 射手再见蓝天575 | 来源:发表于2018-01-08 19:47 被阅读0次

    字符编码

    • 几个常见国家的字符编码:

      美国:ASCII(一个英文字符占1个byte)
      中国:GB2312(一个中文字符占2个byte)
      日本:shift_JIS
      韩国:Eur_kr

    • 统一字符编码:Unicode

      Unicode解决了多种语言编码冲突的问题,但是一个英文字母占2个byte

    • 可变长编码:UTF-8

      UTF-8Unicode的基础上节省了空间,英文字母1个byte而中文字母2个byte

    Python的字符编码

     python 用的是`Unicode`编码,也就是说,Python的字符串支持多语言
    

    字符 与编码的转换函数:ord()、chr()

    • 字符转换成编码:ord()
      >>> ord('m')
       109
      >>> ord('M')
      77
      >>> ord('A')
      65
      >>> ord('a')
      97
      
    • 编码转换成字符:chr()
      >>> chr(65)
      'A'
      >>> chr(3000)
      'ஸ'
      >>> chr(3)
      '\x03'
      >>> chr(93)
      ']'
      >>> chr(96)
      '`'
      >>> chr(94)
      '^'
      

    字符串与bytes的转换函数:encode()、decode()

    • bytes的表示:

      abc的bytes表示为:b'abc'

    • 字符转化成bytes : encode()
      >>> 'string'.encode('ascii')
      b'string'
      >>> 'string'.encode('utf-8')
      b'string'
      >>> '中文'.encode('utf-8')
      b'\xe4\xb8\xad\xe6\x96\x87'
      >>> '中文'.encode('gb2312')
      b'\xd6\xd0\xce\xc4'
      
    • bytes转换成字符串:decode()
      >>> b'abc'.decode('ascii')
      'abc'
      >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
      '中文'
      
      • 当出现无法解码错误时,可以这样:
        >>> b'\xe4\xb8\xad\xff'.decode('utf-8',errors='ignore')
        '中'
        
    • 字符/字节长度函数:len()
      >>> len(b'ABC')
      3
      >>> len(b'\xe4\xb8\xad\xe6\x96\x87')
      6
      >>> len('中文')
      2
      >>> len('中文'.encode('utf-8'))
      6
      

    *注意: ' '" "在上述函数中等效,当'''"""时是多行输入,即'"不能引入本身!例如:

    >>> '''.encode('gb2312')
    ...
    ...
    >>> "'".encode('gb2312')
    b"'
    

    python的格式化输出

    • C语言类型的格式化输出:
    >>> print('''这是整型:%d,%2d,%02d;
    ... 这是浮点型:%f--%.2f--%.3f%%''' %(45,4,3,3.13,3.123455,56.0))
    这是整型:45, 4,03;
    这是浮点型:3.130000--3.12--56.000%
    >>>
    
    • format输出:
      >>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
      'Hello, 小明, 成绩提升了 17.1%'
      

    python源文件常用编码设置

    • 源文件开头声明:
      #!/usr/bin/env python3
      # -*-coding: utf-8 -*-
      
    • 文本编辑器设置:
      Encoding设置为:Encode in UTF-8 without BOM

    一点好玩的东西^_^

    在python中输入:

    >>> print(chr(9997))
    ✍
    >>> print(chr(9996))
    ✌
    >>> print(chr(9995))
    ✋
    >>> print(chr(9993))
    ✉
    >>> chr(9993)
    '✉'
    

    好玩吧^_^

    相关文章

      网友评论

          本文标题:Python之字符串与编码

          本文链接:https://www.haomeiwen.com/subject/sxdvnxtx.html