字符串作为一种常见的数据类型,在日常中我们面临各式各样的字符串处理问题,那么这就要求我们必须掌握一些常用的字符串处理函数,下面我将带领大家逐一去了解一下有哪些字符串函数及运用
一、字符串函数整理
capitalize() | 把字符串的第一个字符改为大写 |
casefold() | 把整个字符串的所有字符改为小写 |
center(width) | 将字符串居中,并使用空格填充至长度 width 的新字符串 |
count(sub[, start[, end]]) | 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。 |
encode(encoding='utf-8', errors='strict') | 以 encoding 指定的编码格式对字符串进行编码。 |
endswith(sub[, start[, end]]) | 检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。 |
expandtabs([tabsize=8]) | 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。 |
find(sub[, start[, end]]) | 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。 |
index(sub[, start[, end]]) | 跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。 |
isalnum() | 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。 |
isalpha() | 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。 |
isdecimal() | 如果字符串只包含十进制数字则返回 True,否则返回 False。 |
isdigit() | 如果字符串只包含数字则返回 True,否则返回 False。 |
islower() | 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。 |
isnumeric() | 如果字符串中只包含数字字符,则返回 True,否则返回 False。 |
isspace() | 如果字符串中只包含空格,则返回 True,否则返回 False。 |
istitle() | 如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。 |
isupper() | 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。 |
join(sub) | 以字符串作为分隔符,插入到 sub 中所有的字符之间。 |
ljust(width) | 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。 |
lower() | 转换字符串中所有大写字符为小写。 |
lstrip() | 去掉字符串左边的所有空格 |
partition(sub) | 找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 ('原字符串', '', '') |
replace(old, new[, count]) | 把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。 |
rfind(sub[, start[, end]]) | 类似于 find() 方法,不过是从右边开始查找。 |
rindex(sub[, start[, end]]) | 类似于 index() 方法,不过是从右边开始。 |
rjust(width) | 返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。 |
rpartition(sub) | 类似于 partition() 方法,不过是从右边开始查找。 |
rstrip() | 删除字符串末尾的空格。 |
split(sep=None, maxsplit=-1) | 不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。 |
splitlines(([keepends])) | 在输出结果里是否去掉换行符,默认为 False,不包含换行符;如果为 True,则保留换行符。。 |
startswith(prefix[, start[, end]]) | 检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。 |
strip([chars]) | 删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。 |
swapcase() | 翻转字符串中的大小写。 |
title() | 返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。 |
translate(table) | 根据 table 的规则(可以由 str.maketrans('a', 'b') 定制)转换字符串中的字符。 |
upper() | 转换字符串中的所有小写字符为大写。 |
zfill(width) | 返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。 |
二、常用的字符串函数及运用
1、检测字符串是否包含字符
find():检测字符串是否包含特定字符,如果包含则返回开始的索引及具体的位置;否则返回-1
# find()函数
str = 'hello Python3'
# 查找'Py'是否在字符串中
print( str.find('Py') )
#输出:6
# 查找'word'是否在字符串中
print( str.find('word') )
#输出:-1
index():检测字符串是否包含指定字符,如果包含则返回开始的索引值;否则提示ValueError: substring not found错误
# index()函数
str1 = 'hello Python3'
#'wo'在字符串中
print( str1.index('Py') )
#输出结果:6
#'word'不在字符串中,程序报错ValueError终止运行
print( str1.index('word') )
#输出结果: ValueError: substring not found
2、count()统计出现的次数(跟数据库统计数量一样的)
## count()函数
str2 = 'hello world'
# 统计str2中全部字母l的个数
print( str2.count('l') )
#输出结果:3
# 统计str2中从第5+1个字母到最后一个字母中,字母l的个数
print( str2.count('l', 5, len(str2)) )
#输出结果:1
3、replace()替换字符值
语法格式:str1.replace(str2, count)将str1中的str1替换成str2,如果指定count,则不超过count次;
str3 = 'hello world hello world'
str5 = 'world'
str6 = 'waltsmith'
# 将str3中所有的str5替换为str6
print( str3.replace(str5, str6) )
# 在str3中只将前1个str5替换为str6
print( str3.replace(str5, str6, 1) )
4、split()根据定界符分割所有能分割的
基本语法格式:str.split('分界符', maxSplit)
maxSplit默认值为-1
#split()函数
str7 = 'I Love Python!'
# 以空格分割字符串,分界符默认为空格
print(str7.split(' ', 3))
# 以字母o作为分界符,指定最大分割为2,将返回最大分割+1个元素的列表
print(str7.split('o', 1))
#输出:
#['I', 'Love', 'Python!']
#['I L', 've Python!']
5、字符串转化大小写
capitalize()将字符串的首字母大写,其余字母全部小写;语法:str.capitalize()
#capitalize()函数
str8 = 'i Love Python!'
# 字符串的首字母大写,其余字母全部小写
print(str8.capitalize())
## 输出:I love python!
title()将字符串中的所有单词的首字母大写,其余字母全部小写;语法:str.title()
#title()函数
str9 = "i love python"
print(str9.title())
#输出:I Love Python
#字符中包含标点符号
str10 = "I lOVE pYthon"
print(str10.title())
#输出:I Love Python
lower()将字符串的所有字母转换为小写;语法:str.lower()
#lower()函数
str11 = "I LOVE PYTHON"
print(str11.lower())
#输出:i love python
upper()将字符串的所有字母转换为大写;语法:str.upper()
#upper()函数
str12 = "i love python"
print(str12.upper())
#输出:I LOVE PYTHON
startswith()检查字符串str是否 以字符串str1开头,若是则返回True;否则返回False;
#startswith()函数
str15 = "Hello Python"
print(str15.startswith("Hello"))
print(str15.startswith("My"))
#分别输出:True Flase
endswith()检查字符串str是否 以字符串str1结尾,若是则返回True;否则返回False;
#endswith()函数
str16 = "Hello Walt Smith"
print(str16.endswith("Smith"))
print(str16.endswith("Hello"))
#分别输出:True Flase
6、使用空格填充至指定长度
ljust()将字符串左对齐,并使用空格填充至指定长度len;语法:str.ljust(len)
#ljust()函数
str17 = "Hello"
print(str17.rjust(18))
print("str17的原长度为%d"% (len(str17)))
print("str17处理后的长度为%d" % (len(str17.ljust(20))))
#输出结果:
#----------Hello
#str17的原长度为5
#str17处理后的长度为20
rjust()将字符串右对齐,并使用空格填充至指定长度len;语法:str.rjust(len)
#rjust()函数
str18 = "Hello"
print(str18.rjust(18))
print("str18的原长度为%d" % (len(str18)))
print("str18处理后的长度为%d" % len(str18))
#输出:
# --------------Hello
# str18的原长度为5
# str18处理后的长度为18
center()将字符串居中,并使用空格填充至指定长度len;语法:str.center(len)
#center()函数
str19 = "Hello"
print(str19.center(20))
print("st19的原长度为%d" % (len(str19)))
print("str19处理后的长度为%d" % (len(str19.center(20))))
#输出结果:
#-------Hello-----
#st12的原长度为5
#str12处理后的长度为20
7、去掉字符串中空格值
lstrip()去掉字符串左边的空白字符;语法:str.lstrip()
#lstrip()函数
str20 = " Hello Python"
print(str20.lstrip())
#输出:Hello Python
rstrip()去掉字符串右边的空白字符;语法:str.rstrip()
#rstrip()函数
str21 = " Hello Walt Smith "
print(str21.rstrip())
#输出: -----Hello Walt Smith
strip()去掉字符串左右两边的空白字符;语法:str.strip()
#strip()函数
str22 = " Hello Python "
print(str22.strip())
#输出:Hello Walt Smith
8、partition()在str中若str1不存在,则将str作为第一部分,后面两个元素为空;返回元组;
#partition()函数
str25 = "Are you believe in yourself?"
# "yourself"在字符串中
print(str25.partition("yourself"))
# "you"在字符串中有两个
print(str25.partition("you"))
# "walt"不在字符串中
print(str25.partition("walt"))
#输出:
#('Are you believe in ', 'yourself', '?')
#('Are ', 'you', ' believe in yourself?')
#('Are you believe in yourself?', '', '')
9、join()将iterable中每两个相邻元素中间插入字符串str,返回形成的新的字符串;语法:str.join(iterable)
#join()函数
str26 = "walt"
print(str26.join("ABC"))
iterable = ['YOU', 'THEY', 'WE']
print(str26.join(iterable))
## 输出:
## AwaltBwaltC
## YOUwaltTHEYwaltWE
10、判断字符串的类型是否是指定的
isspace()如果字符串str中只包含空格,则返回True;否则返回False;语法:str.isspace()
#isspace()函数
str27 = " t "
print(str27.isspace())
#输出: False
isdigit()如果字符串str中只包含数字,则返回True;否则返回False;语法:str.isdigit()
#isdigit()函数
str28 = "12356"
print(str28.isdigit())
#输出: True
isalpha()如果字符串str中只包含字母,则返回True;否则返回False;
#isalpha()函数
str29 = "MrYu"
print(str29.isalpha())
#输出:True