Learning Python Chapter 7 - 字符串

在python中,没单独的字符类型,只有字符串。单个的字符以只有一个字符的字符串表示。
在3.X中,字符串有三种形式:用于Unicode的str,用于二位数据的bytes,以及bytes的变体bytearray。
python中的字符串是不可变的序列数据类型(immutable sequence),也就意味着字符串不能改变或增减,且可以使用所有sequence相关的函数操作。

字符串的表示

  • 字符串可以用双引号或者单引号来框起,一般使用单引号。
  • 字符串中的\0不会像C中那样标注出字符串的结尾,没有任何字符代表python中字符串的结尾。
  • 在引号前加上r则会抑制该字符串中escape sequence的表达。
  • 加上三重引号嵌套则可以进行多行字符串的输入,直到下一个三重引号嵌套为止。因此也可用来临时将某部分代码两边加上三重引号,将其全部变为字符串,以暂时抑制其编译。

字符串操作

乘号和加号

乘号代表重复多少次,加号代表连接

提取和截取(Indexing and slicing)

主要难点在slicing。slicing的三段表达式s[a🅱️c]中,a代表lower bound,包含,b代表upper bound,不包含,c代表步进值。注意:ab均可为负值,代表从后往前数,或者代表x = n + b,n为总字符数。c也可为负值,代表反向步进。若留空,前两项的留空默认值为0和-0,最后一项默认为1。

字符串转换工具

  • str()转换出的字符串比较用户友好,两端不包含嵌套引号,repr()的则包含引号。
  • 对于单个字符的字符串c,ord('c')会给出其对应的编码值,chr(num)则给出数字编码对应的字符。

字符串方法(method)

  • 使用方法为object.method(arguments)
  • str.replace('target', 'content')会将字符串中所有的target都换为content
  • str.find('target')会给出字符串中target出现的首个位置index
  • list(S)会将字符串拆成单个字符字符串的list
  • 'content'.join(L)会将list中的各个子项连在一起,中间全部加上content
  • str.split('mark')以mark为区分点将字符串分割为list,若留空则默认为空格
  • str.rstrip()将字符串结尾的换行符去掉
  • str.upper()将字符串内所有小写变为大写
  • str.isalpha()检验字符串内容是否为字母
  • str.endswith('content')检验字符串是否以content结尾
  • str.startswith('content')检验字符串是否以content开始

字符串格式表达式(string formatting expression)

表达式基本形式为 '...%s...' %(values)
方法调用基本形式为'...{}...'.format(values)
二者皆可完成格式字符串的输出,选一个使用就行,表达式更接近c语言的模式。

  • 左边的几个%用于指定插入特定字符串的位置,右边的则为需要插入的字符串
  • %后面可以跟的字符及相应意义在P219,基本与c语言相同
  • %后还可以像C语言一样加入特殊转换命令,格式为%[(keyname)][flags][width][.precision]typecode,具体作用与c语言一样
  • %后也可以像C语言一样加上*来根据runtime value决定特殊转换命令中的数值

posted on 2016-10-03 19:57  hazelnut  阅读(94)  评论(0)    收藏  举报

导航