字符串操作及命令
定义:使用单引号或者双引号括起来的任意文本
常用方法
字符串的拼接:
-
使用"+"号: str3 = str1 + str2
str1 = "hello" str2 = "world" print(str1+str2) helloworld
-
使用",":
str1 = "hello" str2 = "world" print(str1,str2) hello world
注意使用","在输出的时候,会在逗号位置产生一个空格
-
使用%号:%s代表字符串
print("%s%s"%(str1,str2)) helloworld
-
使用join函数进行拼接: string.join(序列)
功能:以指定的字符串对序列中的元素进行拼接,并且返回拼接后的字符串
注意:序列中的元素必须是字符串
l1 = ["you","are","a","good","man"] print(" ".join(l1)) you are a good man
字符串重复
string = str1 *n
功能: 将指定的字符串str1重复n次输出,返回一个新的字符串
print(str1*5)
hellohellohellohellohello
索引
-
功能:获取字符串中指定的字符 ,通过[索引/下标]来实现,下标或索引从0开始编号
-
语法: 变量名[索引值]
-
索引值的取值范围: [0,len(str)-1] 或者是[0,len(str)),索引可为负,为负的时候从0 开始取
print(str1[0]) #'h' print(str1[1]) #'e' print(str1[-1]) #'o'
获取字符串长度
len(string)
print(len(str1)) #5
字符串截取
格式: string[start:stop:step]
start:默认为0 stop:默认len(string) step:默认为1
截取范围:[start,stop)
print(str1[:2:-1]) # "ol"
print(str1[1::-1]) # "eh"
字符串倒叙
-
string[::-1] 字符串倒序输出
-
string[start::-1] 正着数到start为止,倒着从start位置取到开始
-
string[:end-1] 倒着取到end的位置,不包含end
print(str1[::-1]) # "olleh" print(str1[2:1:-1]) # "l" print(str1[:]) # "hello"
判断是否包含指定的字符串
str1 in str2
若str1 是str2的子串则返回True,否则返回False
str1 = "hello"
str2 = "world"
print("hl" in str1) #False
字符串常用函数
eval(string)
功能:将字符串转为有效的表达式,并且将表达式的结果返回
l1 = eval("(1,2,3,4)")
print(l1)
(1, 2, 3, 4)
str(object)
功能:将其他类型的数据转为字符串
大小写转换函数
-
str.lower():将大写字母转为小写字母
-
str.upper():将小写转为大写
-
str.swapcase:大写转为小写,小写转为大写
-
str.title():将字符转为标题化字符串,每个单词首字母大写
-
str.capitalize():将开头首字母大写,其他都小写
string = "You Are very good!!!" print(string.lower()) #"you are very good!!!" print(string.upper()) #"YOU ARE VERY GOOD!!!" print(string.swapcase()) #"yOU aRE VERY GOOD!!!" print(string.title()) #"You Are Very Good!!!" print(string.capitalize()) #"You are very good!!!"
字符填充函数
-
str.center(width,fillchar)
返回一个以指定字符串居中长度为width使用fillchar来进行填充的字符
-
str.ljust(width,fillchar)
返回一个以指定字符串居左长度为width使用fillchar来进行填充的字符
-
str.rjust(width,fillchar)
返回一个以指定字符串居右长度为width使用fillchar来进行填充的字符
-
str.zfill(width,fillchar)
返回一个以指定字符串居右长度为width使用0来进行填充的字符
string = "You Are very good!!!" print(string.center(50,"&")) print(string.ljust(50,"&")) print(string.rjust(50,"&")) print(string.zfill(50)) 结果如下: "&&&&&&&&&&&&&&&You Are very good!!!&&&&&&&&&&&&&&&" "You Are very good!!!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&You Are very good!!!" "000000000000000000000000000000You Are very good!!!"
字符统计函数
str.count(x,start,end)
功能:统计x在string中出现的次数,若不指定start和end,默认统计整个字符串,若指定,取值范围为[start,end)
string = "You Are very good!!!"
print(string.count("o",0,14)) # 1
查找字符
str.find(sub,start, end)
功能:从左往右在string中查找sub,若找到则返回第一个匹配的下标,若找不到,则返回-1
范围:若不指定start和end则默认查找整个字符串,若指定start和end则查询范围为[start,end)
string = "You Are very good!!!"
print(string.find("o",3,14)) # -1
str.rfind(sub, start, end)
功能:从右往左在string中查找sub,若找到则返回第一个匹配的下标,若找不到则返回-1
范围:若不指定start和end则默认查找整个字符串,若指定start和end则查询范围为[start,end)
string = "You Are very good!!!"
print(string.rfind("o",3,14)) # -1
str.index(sub,start,end)
功能:从左往右在string中查找sub,若找到返回第一个匹配的下标,若找不到则报错
范围:若不指定start和end则默认查找整个字符串,若指定start和end则查询范围为[start,end)
string = "You Are very good!!!"
print(string.index("o",3,14))
'''print(string.index("o",3,14))
ValueError: substring not found'''
str.rindex(sub, start,end)
功能:从右往左在string中查找sub,若找到返回第一个匹配的下标,若找不到则报错
范围:若不指定start和end则默认查找整个字符串,若指定start和end则查询范围为[start,end)
string = "You Are very good!!!"
print(string.index("o",3,14))
'''print(string.index("o",3,14))
ValueError: substring not found'''
strip函数
str.lstrip(chars)
功能:去掉string左边指定的chars.若不指定,默认去除空白符[’’ \t \n \f \r]
str.rstrip(chars)
功能:去掉string右边指定的chars.若不指定,默认去除空白符
str.strip(chars)
功能:去掉左右两边指定的chars.若不指定,默认去除空白符
string2 = "*******You Are **very** good!!!**********"
print(string2.lstrip("*"))
print(string2.rstrip("*"))
print(string2.strip("*"))
print(string2.lstrip("*").rstrip("*"))
运行结果如下:
"You Are **very** good!!!**********"
"*******You Are **very** good!!!"
"You Are **very** good!!!"
"You Are **very** good!!!"
split函数
str.split(seq,maxsplit)
功能:从左往右以指定的seq对string进行切片,并将切片后的结果以列表的方式返回
若不指定seq默认情况下使用空白符进行切片
str.rsplit(seq,maxsplit)
功能:从右往左以指定的seq对string进行切片,并将切片后的结果以列表的方式返回
若不指定seq默认情况下适用空白符进行切片
str.splitlines(keepends)
功能:对string按行进行切片,切片的结果以列表的方式返回,keepends默认为False,
不保留换行符,当keepends为True时保留换行符
string = "You Are very good!!!"
print(string.split(maxsplit=10))
print(string.rsplit(maxsplit=2))
print(string.splitlines(keepends=True))
结果:
"['You', 'Are', 'very', 'good!!!']"
"['You Are', 'very', 'good!!!']"
"['You Are very good!!!']"
max和min
max(str): 返回str中ASCII最大的值
min(str): 返回str中ASCII最小的值
replace函数
str.replace(old,new,count)
old: 旧字符串
new: 新字符串
count: 替换次数
功能:将str中指定的旧字符串替换成新字符串,并将替换的新字符串返回;
若指定count,则替换count次,不指定,则替换全部
映射替换:
1.生成一个映射表
table = str.maketrans(‘god’,‘123’)
2.根据映射表进行替换
str2.translate(table)
str1 = "hello world, hello"
str2 = str1.replace("hello","hi",1)
print(str2)
"hi world, hello"
str3 = "good"
table = str3.maketrans("god","123")
print(str1.translate(table))
"hell2 w2rl3, hell2"
startwith和endwith
- str.startwith(sub): 判断str是否以sub开头
- str.endwith(sub): 判断str是否已sub结尾
phonenum = "12478880233"
print(phonenum.startswith("123")) #False
print(phonenum.startswith("124")) #True
print(phonenum.endswith("244")) #False
print(phonenum.endswith("233")) #True
encode和decode
str.encode(“utf-8”)
功能:将普通字符串转为二进制字符串
str.decode(“utf-8”)
功能:将二进制字符串转为普通字符
注意:编码与解码使用相同的编码格式
print(phonenum.encode("utf-8"))
bstr = "你好啊".encode("utf-8")
print(bstr)
print(bstr.decode("utf-8"))
结果:
"b'12478880233'"
"b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x95\x8a'"
"你好啊"
判断组成
str.isalpha()
功能:判断str中的字符是否为字母,若是,返回True,否则返回False
注意:中午不考虑[出现中文也为True]
str.isalnum()
功能:判断str中的字符是否为字母或者数字,是,返回True,否则返回False
str.isspace()
功能:判断str是否只包含空白符,是,返回True,否则,返回False
str.isupper()
功能:判断str中所有的字符是否都为大写,是,返回True ,否则返回False
str.islower()
功能:判断str中所有的字符是否都为小写,是,返回True ,否则返回False
str.title()
功能:判断str中所有的字符是否为标题化字符[所有单词首字符大写],是,返回True ,否则返回False
str4 = 'hello中国'
str5 = 'Hello World'
str6 = 'Hello2World'
str7 = 'GOO D'
print(str4.isalpha()) # Ture
print(str5.isalpha()) # False
print(str6.isalpha()) # False
print(str4.isalnum()) # True
print(str5.isalnum()) # False
print(str6.isalnum()) # True
#
print(str4.istitle()) # False
print(str5.istitle()) # True
print(str6.istitle()) # True
print(str7.istitle()) # Falss
print(str4.islower()) # True
print(str5.islower()) # False
print(str6.islower()) # False
print(str7.islower()) # False
print(str4.isupper()) # False
print(str5.isupper()) # False
print(str6.isupper()) # False
print(str7.isupper()) # True
编码与解码
-
ord(char)
功能:返回char的ASCII码值
-
chr(code)
功能:返回code对应的ASCII的字符