Python 字符串

所有用过 Python (2&3)的人应该都看过下面两行错误信息:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 0-1: invalid continuation byte

这就是 Python 界的”锟斤拷”!

今天和接下来几期的内容将主要关注 Python 中的字符串(str)、字节(bytes)及两者之间的相互转换(encode/decode)。也许不能让你突然间解决所有乱码问题,但希望可以帮助你迅速找到问题所在。

定义

Python 中对字符串的定义如下:

Textual data in Python is handled with str objects, or strings. Strings are immutable sequences of Unicode code points.

Python 3.5 中字符串是由一系列 Unicode 码位(code point)所组成的不可变序列

不可变是指无法对字符串本身进行更改操作:

序列(sequence)则是指字符串继承序列类型(list/tuple/range)的通用操作:

至于 Unicode 暂时可以看作一张非常大的地图,这张地图里面记录了世界上所有的符号,而码位则是每个符号所对应的坐标(具体内容将在后面的几期介绍)。

常用操作

  • len:字符串长度;
  • split & join
  • find & index
  • strip
  • upper & lower & swapcase & title & capitalize
  • endswith & startswith & is*
  • zfill

format / encode

格式化输出 format 是非常有用的工具,将会单独进行介绍;encode 会在 bytes-decode-Unicode-encode-bytes 中详细介绍。

打赏支持我写出更多好文章,谢谢!

打赏作者

打赏支持我写出更多好文章,谢谢!

1 3 收藏 评论

关于作者:Yusheng

关注微信公众号 PyHub! 个人主页 · 我的文章 · 24 ·   

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部