切片——str[start:end]
str1 = ' python str '
#切片
print(str1[3:6]) # str[start:end](下标从 0 开始)从下标为start开始算起,切取到下标为 end-1 的元素,切取的区间为 [start, end)
print(str1[2:8:2]) # str[start:end:step],取 [start, end) 之间的元素,每隔 step 个取一个
print(str1[2:9:2])
|
tho
yhn
yhns
字符串长度——len(str)
str1 = "aBCd Efgh ijK LmN"
print(len(str1)) # 返回字符串的长度
|
17
重复字符串 ——1、str * n,2、n * str
#重复字符串 1、str * n,2、n * str, n为一个 int型的数字
str1 = ' python str '
print(str1*2)
print(3*str1)
|
python str python str
python str python str python str
查找某个字符 or 某个字符子串在不在原字符串中
1、in 关键字
# in 关键字
str1 = ' python str '
print('p' in str1)
print('py' in str1)
print('py' not in str1)
|
True
True
False
2、find函数
# str.find(str, start=0, end=len(string)) 如果包含子字符串返回开始的索引值,否则返回-1。
str1 = ' python str '
str2 = "python"
print(str1.find(str2))
print(str1.find(str2, 1))
print(str1.find(str2, 5))
|
1
1
-1
3、index函数
# str.index(str, start=0, end=len(string)) 如果包含子字符串返回开始的索引值,否则抛出异常。
str1 = ' python str '
str2 = "python"
print(str1.index(str2))
print(str1.index(str2, 1))
print(str1.index(str2, 5))
|
1
1Traceback (most recent call last):
File “E:/李明/pycharmProject/深度学习入门/main.py”, line 27, in
print(str1.index(str2, 5))
ValueError: substring not found
4、rfind函数
str11 = " python str python str "
str2 = "python"
print(str11.rfind(str2))
print(str11.rfind(str2,10,len(str11))) # str.rfind(substr, start,end) 类似于 find()函数,不过是从右边开始查找.
|
5、rindex函数
str11 = " python str python str "
str2 = "python"
print(str11.rindex(str2)) # str.rindex(substr, start,end)类似于 index(),不过是从右边开始.
print(str11.rindex(str2,10,len(str11)))
|
字符串中某字符(子字符串)的数量——str.count(sub, start= 0,end=len(string))
str = "li hua shi ge huai hai zi"
print(str.count('i', 0, 15)) # str.count(sub, start= 0,end=len(string))
print(str.count('i'))
print(str.count('shi'))
|
2
5
1
去除空格——str.strip()、str.lstrip()、str.rstrip()
str1 = ' python str '
print (str1)
print (str1.strip()) # 去首尾空格
print (str1.lstrip()) # 去左侧空格
print (str1.rstrip()) # 去右侧空格
|
结果:
分割字符串——str.split()
str1 = '1 , 2 , 3 , 4 , 5'
print (str1.split()) # 默认使用空格分隔
print (str1.split(' ')) # 指定使用空格进行分隔,首尾如果有空格,则会出现在结果中
print (str1.split(',')) # 指定其他字符串进行分隔,指定,分割
print (str1.split('3 ,')) # 指定 3 , 分割
|
[‘1’, ‘,’, ‘2’, ‘,’, ‘3’, ‘,’, ‘4’, ‘,’, ‘5’]
[‘1’, ‘,’, ‘2’, ‘,’, ‘3’, ‘,’, ‘4’, ‘,’, ‘5’]
['1 ', ’ 2 ', ’ 3 ', ’ 4 ‘, ’ 5’]
['1 , 2 , ‘, ’ 4 , 5’]
以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 次
str1 = '1 , 2 , 3 , 4 , 5'
print (str1.split(',')) # 指定其他字符串进行分隔,指定,分割
print (str1.split(',',3))
|
['1 ', ’ 2 ', ’ 3 ', ’ 4 ‘, ’ 5’]
['1 ', ’ 2 ', ’ 3 ‘, ’ 4 , 5’]
替换字符串——str.replace(old, new, max)
# str.replace(old, new, max) 字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
str1 = "li hua shi ge huai hai zi,li hua shi ge huai hai zi"
print(str1.replace("ai", "PL"))
print(str1.replace("ai", "PL", 3))
|
li hua shi ge huPL hPL zi,li hua shi ge huPL hPL zi
li hua shi ge huPL hPL zi,li hua shi ge huPL hai zi
判断字符串是否以指定前缀、后缀结尾
是否是指定前缀——str.startswith(str, start=0,end=len(string))
# str.startswith(str, start=0,end=len(string)),检查字符串[start,end)以指定子字符串开头,如果是则返回 True,否则返回 False
str1 = "this is string example....wow!!!"
print(str1.startswith('this'))
print(str1.startswith('is', 2, 4))
print(str1.startswith('his', 1, 3))
|
True
True
False
是否是指定后缀——str.endswith(suffix, start, end)
# str.endswith(suffix, start, end),检查字符串[start,end)以指定后缀结尾,是返回True,否则返回False
str1 = "this is string example....wow!!!"
str2 = "wow!!!"
print (str1.endswith(str2)) # True
print (str1.endswith(str2,20)) # True
str2 = "is"
print (str1.endswith(str2, 2, 4)) # True
print (str1.endswith(str2, 2, 6)) # False
print (str1.endswith(str2, 2, 7)) # True
|
True
True
True
False
True
将字符串的第一个字母变成大写,其他字母变小写——str.capitalize()
str1 = "aBCd Efgh ijK LmN"
print(str1.capitalize()) # 将字符串的第一个字母变成大写,其他字母变小写
|
Abcd efgh ijk lmn
转换字符串中所有大写字符为小写,将字符串中的小写字母转为大写字母——str.lower()、str.upper()
str1 = "aBCd Efgh ijK LmN"
print(str1.lower()) # 转换字符串中所有大写字符为小写
print(str1.upper()) # 将字符串中的小写字母转为大写字母
|
abcd efgh ijk lmn
ABCD EFGH IJK LMN
对字符串的大小写字母进行转换——str.swapcase()
str1 = "aBCd Efgh ijK LmN"
print(str1.swapcase()) # 对字符串的大小写字母进行转换
|
AbcD eFGH IJk lMn
返回字符串 str 中最小(大)的字母 ( ASCII码比大小)——max(str)、min(str)
str1 = "aBCd Efgh ijK LmN"
print(max(str1)) # 返回字符串 str 中最大的字母
print(min(str1)) # 返回字符串 str 中最小的字母 此实例是空格最小 ASCII码
|
m
(空格最小)
把字符串的每个单词首字母大写——str.title()
str1 = "aBCd Efgh ijK LmN"
print(str1.title()) # 把字符串的每个单词首字母大写
|
Abcd Efgh Ijk Lmn
检测字符串组成
检测数字——str.isdigit()、str.isnumeric()、str.isdecimal()
str1 = "123456"
print(str1.isdigit()) # 检测字符串是否只由数字组成
print(str1.isnumeric()) # 检测字符串是否只由数字组成,这种方法是只针对unicode对象
print(str1.isdecimal()) # 检查字符串是否只包含十进制字符。这种方法只存在于unicode对象
|
检测字母——str.isalpha()
str1 = "abcd"
print(str1.isalpha()) # 检测字符串是否只由字母组成
|
检测字母和数字——str.isalnum()
str1 = "123456abcd"
print(str1.isalnum()) # 检测字符串是否由字母和数字组成
|
检测其他
str.isspace() # 检测字符串是否只由空格组成
str.islower() # 检测字符串是否由小写字母组成
str.isupper() # 检测字符串中所有的字母是否都为大写
str.istitle() # 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写
|
这几个就不举例子了
填充字符串 (左填充、右填充、居中填充)——str.rjust(width)、str.rjust(width)、str.rjust(width)
str1 = "abcd"
print(str1.ljust(10)) # str.rjust(width) 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
print(str1.rjust(10)) # str.rjust(width) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
print(str1.center(10)) # str.rjust(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
|
abcd
abcd
abcd
把字符串分割成三部分,子字符串前的、子字符串、子字符串后的——str.partition(substr)、str.rpartition(substr)
str1 = "abcdefghijklmnabcdefghijklmn"
str2 = "efg"
print(str1.partition(str2)) # str.partition(substr) 返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
print(str1.rpartition(str2)) #类似于 partition()函数,不过是从右边开始
|
(‘abcd’, ‘efg’, ‘hijklmnabcdefghijklmn’)
(‘abcdefghijklmnabcd’, ‘efg’, ‘hijklmn’)
join函数
# str.join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
str = '-'
seq = ("a", "b", "c"); # 字符串序列
print(str.join(seq)) # 'a-b-c'
|
a-b-c