字符串
字符串
表示
由一对单引号或双引号表示,仅表示单行字符串;
由一对三单引号或三双引号表示,可表示多行字符串;
字符串不可变;
1 | |
可以在字符串中使用\(反斜杠)来表示转义,也就是说\后面的字符不再是它原来的意义,例如:\n不是代表反斜杠和字符n,而是表示换行;而\t也不是代表反斜杠和字符t,而是表示制表符。所以如果想在字符串中表示'要写成\',同理想表示\要写成\\。可以运行下面的代码看看会输出什么。
1 | |
在\后面还可以跟一个八进制或者十六进制数来表示字符,例如\141和\x61都代表小写字母a,前者是八进制的表示法,后者是十六进制的表示法。也可以在\后面跟Unicode字符编码来表示字符,例如\u9a86\u660a代表的是中文“骆昊”。运行下面的代码,看看输出了什么。
1 | |
如果不希望字符串中的\表示转义,我们可以通过在字符串的最前面加上字母r来加以说明,再看看下面的代码又会输出什么。
1 | |
字符串切片高级用法
使用[M: N: K]根据步长对字符串切片
<字符串>[M: N],M缺失表示至开头,N缺失表示至结尾
1 | |
<字符串>[M: N: K],根据步长K对字符串切片
1 | |
字符串操作符
| 符号 | 功能 |
|---|---|
| + | 拼接两个字符串 |
| * | nx 或者 xn复制n次字符串x |
| in | x in s:判断x是否为s的子串 |
字符串处理方法
| 名称 | 功能 |
|---|---|
| len(x) | 返回字符串x的长度,如果换成bytes,len()函数就计算字节数 |
| str(x) | 任意类型x所对应的字符串形式 |
| hex(x) 或 oct(x) | 整数x(整型)的十六进制或八进制小写形式字符串 |
| chr(x) | x为Unicode编码,返回其对应的字符 |
| ord(x) | x为字符,返回其对应的Unicode编码 |
| center() | 通过在两边添加字符让字符串居中 |
| find() | 返回子串的第一个字符的索引,否则返回-1 |
| join() | 合并序列的元素,与split相反;str.join(iter) 在iter变量除最后元素外每个元素后增加一个str;eg“,”.join(“12345”) 结果为”1,2,3,4,5” #主要用于字符串分隔等 |
| split() | 将字符串拆分为序列,如果未指定分隔符,将默认在单个或多个连续的空白字符(空白泛指任何非打印字符,如空格、制表符、换行符等)进行拆分 |
| translate() | 单字符替换 |
| str.split(sep=None) | 返回一个列表,由str根据sep被分隔的部分组成;”A,B,C”.split(“,”) 结果为 [‘A’,’B’,’C’] |
| str.count(sub) | 返回子串sub在str中出现的次数 |
| str.replace(old, new) | 返回字符串str副本,所有old子串被替换为new |
| str.center(width[,fillchar]) | 字符串str根据宽度width居中,fillchar可选;”python”.center(20,”=”) 结果为’=======python=======’ |
| str.strip(chars) | 从str中去掉在其左侧和右侧chars中列出的字符,rstrip()****:末尾(暂时删除)、lstrip()****:头;要想永久删除,将修改后的值重新赋值给变量。”= python= “.strip(“ =np”) 结果为”ytho” |
| title()、upper()、 lower() | 首字母大写、全部大写、全部小写 |
1 | |
在Python中,我们还可以通过一系列的方法来完成对字符串的处理,代码如下所示。
1 | |
字符串类型格式化
%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,%x表示十六进制整数,%f表示浮点数;有几个**%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?**,括号可以省略。
1 | |
格式化是对字符串进行格式表达的方式
字符串格式化使用**.format()**方法,用法如下:
<模板字符串>.format(<逗号分隔的参数>)
Python 3.6以后,格式化字符串还有更为简洁的书写方式,就是在字符串前加上字母f,我们可以使用下面的语法糖来简化上面的代码。
1 | |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hongwei Zhao's Blog!








