Python之字符串与编码

字符编码

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

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

  • 统一字符编码:Unicode

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

  • 可变长编码:UTF-8

    UTF-8在Unicode的基础上节省了空间,英文字母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)
'✉'

好玩吧^_^

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容