[Python] 字符串 常用函数

2020/12/14 23:45:37

常用函数

在程序开发中,字符串经常需要被处理,例如,求字符串的长度、大小写转换等。如果每次处理字符串时,都编写相应的代码,那么开发效率会非常低下,为此Python提供了一些内置函数用于处理字符串常见的操作。

大小写转换

Python中涉及字符串大小写转换的函数,如表所示。

上述两种方法都返回一个新字符串,其中的非字母字符保持不变。如果需要进行大小写无关的比较,则这两个函数非常有用。接下来演示其用法,如例所示。

name = "xiaochao" #假设用户名为xiaochao
str = input("请输入用户名(不区分大小写)∶")
if str.lower() == name:
    print("欢迎用户%s登录"%name)
else:
    print("用户名错误")

判断字符

Python中提供了判断字符串中包含某些字符的函数,这些函数在处理用户输入的字符串时是非常方便。这些函数都是以is开头,如表所示。

接下来演示这些函数的基本用法,如例所示。

print("xiaochao".islower()) #True
print("Xiaochao".islower()) #小写字母中有大写字母
print("xiaochao6666".islower()) #True
print("XIAOCHAO".isupper()) #True
print("XIAOcHAO".isupper()) #大写字母中有小写字母
print("XIAOCHAO6666".isupper()) #True 
print("xiaochao666".isalpha()) #包含数字字符
print("xiaochao666".isalnum()) #True 
print("xianchao666".isdigit()) #包含字母字符
print(" \t\n".isspace()) #True
print("Title".istitle()) # True 

在例中,这些函数的返回值都为布尔值。接下来演示使用这些函数验证用户输入的密码是否符合格式要求,如例所示。

while True:
    pwd = input("请输入您的密码(必须包含数字与字母)∶")
    if pwd.isalnum() and (not pwd.isalpha()) and (not pwd.isdigit()):
        print("您的密码为号%s"%pwd)
        break 
else:
    print("重新输入! ")

检测前缀或后缀

在处理字符串时,有时需要检测字符串是否以某个前缀开头或以某个后缀结束,这时可以使用startswith()与endswith()函数,如表所示。

接下来演示这两个函数的用法,如例所示。

str = "www.codingke.com"
print(str.startswith("www"))
print(str.startswith("coding", 4)) 
print(str.endswith("com")) 
print(str.endswith("ke", 0, 12))

合并与分隔字符串

在处理字符串时,有时需要合并与分割字符串,这时可以使用join()与split()函数,如表所示。

接下来演示这两个函数的用法,如例所示。

seq1 = "python" #字符串
print ("|".join(seq1))
seq2 = ["python""字符串""常用函数"] #列表
print("-".join(seq2))
str3 = "python|字符串|常用函数" 
print(str3.split("|")) 
print(str3.split("|", 1))

对齐方式

在处理字符串时,有时需要设置字符串对齐方式,这时可以使用rjust()、ljust()和center()函数,如表所示。

接下来演示这3个函数的用法,如例所示。

str = "python" #字符串 
print(str.rjust(10))
print(str.rjust(10, '$'))
print(str.ljust(10))
print(str.ljust(10, '$'))
print(str.center(10))
print(str.center(10, '$'))

删除字符串头尾字符

在处理字符串时,有时需要删除字符串头尾的某些字符,这时可以使用strip()、lstrip()和rstrip()函数,如表所示。

接下来演示这3个函数的用法,如例所示。

str1, str2, str3 = "\t头尾字符\t", "***常用函数***", "goodprogrammer" 
print(str1.strip())
print(str2.strip('*'))
print(str3.strip('good'))
print(str3.strip('odg'))
print(str2.lstrip('*'))
print(str2.rstrip('*'))

检测子串

在处理字符串时,有时需要检测某个字符串中是否包含子字符串,这时可以使用find()函数,其语法格式如下:

find(str, beg = 0, end = len(string))

该函数检测str是否包含在检测字符串中。如果指定范围beg和end,则检查是否包含在指定范围内。如果包含,则返回开始的下标值,否则返回-1。
接下来演示该函数的用法,如例所示。

str="遇到IT技术难题,就上CSDN" 
print(str.find("IT"))
print(str.find("Python"))
print(str.find("CSDN", 10))
print(str.find("CSDN", 10, 14))

除此之外,还可以通过index()函数检测字串,其语法格式如下:

index(str, beg=0, end=len(string))

该函数的用法与find()函数类似,两者的区别是:如果str不在字符串中,那么index()函数会报一个异常。
接下来演示其用法,如例所示。

str = "遇到IT技术难题,就上CSDN"
print(str.index("CSDN", 10))
print(str.index("CSDN", 10, 14))

替换子串

在文字处理软件中,都会有查找并替换的功能。在字符串中,可以通过replace()函数来实现,其语法格式如下:

replace(old, new [, max])

该函数将字符串中old替换成new并返回新生成的字符串。如果指定第三个参数max,则表示替换不超过max次。
接下来演示该函数的用法,如例所示。

str = "Anything I do,I spend a lot of time."
print(str.replace('I', 'you'))
print(str.replace('I', 'you', 1))

统计子串个数

在文字处理软件中,都会有统计某个词语出现次数的功能。在字符串中,可以通过count()函数来实现,其语法格式如下:

count(str, beg = 0, end = len(string))

该函数返回str在字符串中出现的次数。如果指定beg或end,则返回指定范围内str出现的次数。
接下来演示该函数的用法,如例所示。

str = "Anything I do,I spend a lot of time." 
print(str.count ('I'))  
print(str.count('I', 0, 10))

首字母大写

capitalize()函数用于将字符串的第一个字母变成大写,其他字母变成小写,其语法格式如下:

capitalize()

接下来演示该函数的用法,如例所示。

str ="a great Website."
print(str.capitalize ())

标题化

title()函数可以将字符串中所有单词首字母大写,其他字母小写,从而形成标题,其语法格式如下:

title()

接下来演示该函数的用法,如例所示。

str = "python"
print (str.title())