Python 的字符串内建函数(部分)
!!!只有返回结果是字符串的,都是一个新的字符串,不会对原字符串进行修改。因为字符串有序但不可变!!!
# 6. endswith() 方法语法:
"""
S.endswith(suffix[,start=0[,end=len(S)]])
S -- 父字符串。
suffix -- 指定后缀,该参数可以是一个字符串或者是一个元素。
start -- 可选参数,字符串中的开始位置索引,默认为0。(可单独指定)
end -- 可选参数,字符中结束位置索引,默认为字符串的长度。(不能单独指定)
如果字符串以指定的后缀结尾返回 True ,否则返回 False。
"""
S ='Runoob example....wow!!!'
suffix = '!!'
print(S.endswith(suffix))
print(S.endswith(suffix, 2, -1))
suffix = 'Run'
print(S.endswith(suffix))
print(S.endswith(suffix, 0))
str = 'a123456b'
suffix = '5'
print(str.endswith(suffix, 1, 7))
print(str.endswith(suffix, 0, 7))
# 7.expandtabs(tabsize=8),返回一个新的字符串!!!
# 当字符串中存在'\t'符号,使用expandtabs(tabsize=8)的时候,
# 如果'\t'前面有>=8个字符,那么这里'\t'就转变成8个空格键,
# 如果'\t'前面有<8个字符,那么这里'\t'就转变成(8-N)个空格键,这里N是前面有多少个字符!
str = 'adfdvfgg\tbc'
print(str, len(str))
str2 = str.expandtabs(4)
print(str2, len(str2)) # 将字符串中的\t 转换成16个空格
# 8. find(str, beg=0 end=len(string)).
# 判断字符串1中是否包含字符串2,如果包含返回字符串2中的开始下标,如果不包含返回-1
str1 = 'abc222'
str2 = 'c2'
num = str1.find(str2, 2)
print(num)
# 9. index(str, beg=0, end=len(string))
# 判断字符串1中是否包含字符串2,如果包含返回字符串2中的开始下标,如果不包含会报错
str1 = 'abc222'
str2 = 'c2'
print(str1.index(str2, 1, 4))
# print(str1.index(str2, 1, 3))
# 10. isalnum()
# 判断字符串中是否全是字母或数字。非ASCII码表中的字符检测不出来!
str1 = 'abc22'
str2 = 'abc!!22'
print(str1.isalnum(), str2.isalnum())
# 11. isalpha()
# 判断字符串中是否全是字母。
str1 = 'abc'
str2 = 'abc22'
print(str1.isalpha(), str2.isalpha())
print('=========================')
# 12. str.isdigit()
# 判断字符串中是否全是整数数字,+,- 都不行
str1 = '22'
print(str1.isdigit())
# 13. str.islower()
# 判断字符中有无字母并且字母是否全为小写, 如果是返回True,否则返回False
str1 = '22bA'
str2 = '44b'
print(str1.islower(), str2.islower())
# 14. str.isnumeric()
# 判断字符中是否只包含数字(中文数字也可以)
str1 = '22一二三'
str2 = '22ddd'
print(str1.isnumeric(), str2.isnumeric())
print('===============')
# 15. str.isspace()
str1 = 'a b\tc'
str2 = '\t '
print(str1.isspace(), str2.isspace()) # 判断字符中是否只有空格
# 16. str.istitle()
# 判断字符中是否有字母,并且第一个字母是否为大写
str1 = '78Abc好123'
str2 = '3asd'
print(str1.istitle(), str2.istitle())
# 17. str1.isupper()
# 判断字符中有无字母并且字母是否全为大写, 如果是返回True,否则返回False
str1 = '22bA'
str2 = '44A'
print(str1.isupper(), str2.isupper())
print('------------')
# 18. str1.join(seq)
# 将字符串1插入到序列中的每个元素之间,并且返回一个新的字符串,这里的序列元素必须都是字符串!!!
str1 = '*='
str2 = {'我': '23', '3': 3, '34': '3'}
str3 = str1.join(str2)
print(str3) # 我*=3*=34
def my_join(str1, seq):
str3 = ''
for item in seq:
str2 = item + str1
str3 += str2
return str3[:len(str3)-len(str1)]
str1 = '*='
str2 = {'我': '23', '3': 3, '34': '3'}
str3 = my_join(str1, str2)
print(str3) # 我*=3*=34
# 19. len(string)
str1 = '*='
str2 = 'abc'
print(len(str1), len(str2)) # 返回字符串长度
# 20. str.ljust(width[, fillchar])
str = 'abb'
print(str.ljust(10, '=')) # 左对齐--返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
# 21. str.lower()
# 将字符串中所有大写字母转换成小写字母
# 注意:非ASCII码表中的字符检测不出来!
str1 = 'ABB'
str2 = '好AA'
print(str1.lower(), str2.lower())
# 22. str1.lstrip()
# 去掉字符串左边的空格
str1 = '\tABB'
str2 = 'Ab\tbc好'
print(str1)
print(str2)
print(str1.lstrip(), str2.lstrip())
# 24. max(str)
# 返回字符串中最大的字符
str1 = 'abcd\u4e00'
str2 = 'dfab'
print(max(str1), max(str2))
# 25. min(str)
# 返回字符串中最小的字符
str1 = 'abcd\u4e00'
str2 = 'dfab'
print(min(str1), min(str2))
# 26. replace(old, new [, max])
# 将字符串中的字符1转换成字符2,max表示最多可以转换max次
str1 = 'a123'
str2 = 'bvbbbc'
print(str1.replace('a1', 'b'))
print(str2.replace('b','f',2))
# 27. str1.rfind(str2, beg=0,end=len(string))
# 从右边开始查找,判断字符串1中是否包含字符串2,如果包含返回字符串2中的开始下标,如果不包含返回-1
str1 = 'abhhc22uuu2'
str2 = 'c2'
print(str1.rfind(str2, 2, 8))
# 28. str1.rindex( str2, beg=0, end=len(string))
# 从右边开始查找,判断字符串1中是否包含字符串2,如果包含返回字符串2中的开始下标,如果不包含会报错
str1 = 'abc22hh2'
str2 = 'c2'
print(str1.rindex(str2, 1, 4))
# print(str1.rindex(str2, 1, 3))
# 29. str1.rjust(width,[, fillchar])
# 左对齐--返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
str1 = 'abb'
print(str1.ljust(10, '='))