Python 字符串常用函数
操作字符串的常用函数
函数 | 描述(返回值) |
---|---|
str.capitalize() |
将字符串的第一个字符大写 |
str.title() |
返回标题化的字符串,即每个单词的首字母都大写 |
str.upper() |
全大写 |
str.lower() |
全小写 |
|
|
len(str) |
返回字符串的长度。用法与其他不同。 |
str.count(substring[, start[,end]]) |
统计字符串里某个子串出现的次数。三个参数:搜索的子串、搜索的开始位置、结束位置。后2个可选,缺省时默认为0、-1 可选参数为在字符串搜索的开始与结束位置 |
|
|
str.center(width[, fillchar]) |
返回一个指定宽度 width 居中的字符串,fillchar 为填充的字符(只能是一个字符,不能是字符串,下2个同),默认为空格。 |
ljust(width[, fillchar]) |
返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 |
rjust(width[, fillchar]) |
返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
|
|
lstrip([substring]) |
删掉字符串开头的子串substring。开头的substring才会被删除。参数缺省时默认为空格。 |
rstrip([substring]) |
删掉字符串开头的子串substring。开头的substring才会被删除。参数缺省时默认为空格。 |
strip([substring]) |
lstrip()+rstrip() |
|
|
str.encode("UTF-8") |
以指定字符集编码,返回编码后的字符串 |
str.decode("UTF-8") |
以指定字符集解码,返回解码后的字符串。需要在之前使用encode()编码,才能使用decode() |
|
|
str.startswith(substring[,satrt[,end]]) |
检查字符串是否是以指定子字符串 substr 开头,返回值是bool类型。三个参数:搜索的子串、搜索的开始位置、结束位置。后2个可选,缺省时默认为0、-1 |
endswith(substring[, start[, end]]) |
判断字符串是否以指定子串结尾 |
|
|
str.find(substring[, start[, end]]) |
在str中查找指定子串,找到就返回子串的位置(索引),找不到就返回-1 |
str.rfind(substring[, start[, end]]) |
同find(),只不过是从右向左找 |
str.index(substring[, start[, end]]) |
同find(),只不过找不到时是报错(error) |
str.rfind(substring[, start[, end]]) |
从右向左找 |
|
|
str.replace(oldSub, newSub [, maxCount]) |
替换子串,count指5定最大替换次。比如max=5,则替换5次,str中不足5个匹配时,有多少个就替换多少个。 |
str.expandtabs(1) |
把字符串中的\t替换为指定个数的空格,\t的默认空格数是 8 ,参数指定空格数,缺省时默认为8(不替换) |
|
|
str.split([substring[, count]]) |
将字符串切割为字符串列表,返回字符串列表。substring指定分隔符(默认为空格,一个或多个空格都行),count指定切割次数(默认为-1,全部切完)。切一刀会得到2个子串(后面作为一个整体)。 |
连接符.join(seq) |
以指定字符串作为连接符,将 seq 中所有的元素连接为一个字符串,并返回这个字符串。seq必须为字符串序列,否则报错。 |
说明
-
以上函数不用导入模块,直接使用即可。
- 返回的均是副本,原串(变量)不会改变
- 都是通过 字符串.方法名() 的形式调用的,len(str)除外。
常见单词
- substring 子串
- sequence 序列
- strip 剥夺、修剪、去除
- join 连接、加入、结合
strip()的使用:
str = "hellohello world" print(str.lstrip("hello")) # 开头的2个hello都会被删除 str="hello hello" print(str.lstrip("hello")) #只会删除第一个hello str="!hello hello" print(str.lstrip("hello")) #hello不是字符串开头,所以不会删除 """ l/rstrip(),先判断substring是不是字符串的开头/结尾,是才删除(多个连着时,会删除多个) strip()相当于lstrip()+rstrip(),只删除开头、结尾处的,并不是全部删除。 """
split()的使用:
str = "hello world" print(str.split("o")) #['hell', ' w', 'rld'] print(str.split("o",1)) #['hell', ' world'] 一刀2段,后面作为一个整体
join()的使用:
seq=["hello","world","ok"] print(" ".join(seq)) #hello world ok 以空格连接 print("**".join(seq)) #hello**world**ok 以**连接
eval()、exec()的使用:
eval("print(1)") #1 exec("print(2)") #2
eval(str)、exec(str)都是执行字符串中的python代码,只不过exec()功能更加强大。