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决定特殊转换命令中的数值
浙公网安备 33010602011771号