0
点赞
收藏
分享

微信扫一扫

day10-字符串-复写str方法

菜头粿子园 2022-03-10 阅读 50
python
"""__author__=胡兴航"""
​
# 1. capitalize
# str.capitalize()  -  将字符串的第一个字母变为大写字母,其他字母变为小写字母
str1 = 'qwerrty'
print(str1.capitalize())  # Qwerrty
​
# 2. center
# str.center(width, fillchar)  -  返回一个指定宽度,居中为对象字符串,其余部分用指定字符填充的字符串,默认用空格填充
str1 = 'qaz'
print(str1.center(10, '7'))  # 777qaz7777
​
# 3. count
# str.count(char)  -  统计str中char的出现次数
str1 = 'qwertqwert'
print(str1.count('q'))
# str.count(char, start=, end=)  -  统计str中指定范围内char的出现次数
print(str1.count('q', 0, 3))  # 1
​
# 4. endswith
# str.endswith(suffix)  -   确定字符串是否以指定的后缀结尾。 后缀可以是字符或字符串。 如果是,它将返回布尔值T,否则F
str1 = 'qwerty'
print(str1.endswith('y'))  # True
# str.endswith(suffix, start=, end=)  -  确定指定范围内的字符串部分是否以指定后缀结尾。
print(str1.endswith('y', 2, 4))  # False
​
# 5.find
# str.find(str, start=, end=)  -  确定指定范围内的字符串是否包含指定的子字符串,如果有,则返回所在处的首个字符的索引值;若不存在,则返回-1。
#                                               不加范围则默认搜索整个字符串
str1 = 'qwertyqwerty'
print(str1.find('w'))  # 1
print(str1.find('q', 2, 3))  # -1
​
# 6. index
# str.index(str, start=, end=)  -  功能与find相同,区别在于如果没有找到则会报错
str1 = 'qwertyqwerty'
print(str1.index('w'))  # 1
print(str1.index('q', 2, 3))  # ValueError: substring not found
​
# 7. isdigit
# str.isdigit()  -  判断该字符串是否只由数字组成,是则返回True,不是则False
str1 = '197414'
str2 = '2d129a'
print(str1.isdigit())  # True
print(str2.isdigit())  # False
​
# 8. islower
# str.islower  -  判断该字符串中的字母是否全由小写字母组成,是则返回True,不是则False
str1, str2, str3 = 'qwe', 'QWe', 'qwe123'
print(str1.islower())  # True
print(str2.islower())  # False
print(str3.islower())  # True
​
# 9. isnumeric
# str.isnumeric  -  判断判断该字符串是否只由数字组成,是则返回True,不是则False。和isdigit区别在于罗马、汉字数字等同样符合要求
str1, str2, str3, str4 = '123', '一二三', '壹二三', '123hehe'
print(str1.isnumeric())  # True
print(str2.isnumeric())  # True
print(str3.isnumeric())  # True
print(str4.isnumeric())  # False
​
# 10. istitle
# str.istitle  -  检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。
#                    如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.
str1, str2, str3 = 'you shall not pass!', 'You Shall Not Pass!', 'You shall not pass!'
print(str1.istitle())  # False
print(str2.istitle())  # True
print(str3.istitle())  # False
​
# 11. isupper
# str.isupper  -  检测字符串中是否至少包含一个字母,而且所有字母是否都为大写字母。是则返回 True,否则返回 False.
str1, str2, str3 = 'QWE123', 'Qwe123', '123'
print(str1.isupper())  # True
print(str2.isupper())  # False
print(str3.isupper())  # False
​
# 12. join
# str.join(seq)  -  将seq中的元素用str连接
# 注意,seq中的元素也需要是字符串,才能和str连接
str1, seq1, seq2, seq3 = 'z', {'q': '1', 'w': '2'}, ['1', '1', '1', '1', '1'], [3, 3, 3, 3]
print(str1.join(seq1))  # 1z2z3
print(str1.join(seq2))  # 1z1z1z1z1
print(str1.join(seq3))  # TypeError: sequence item 0: expected str instance, int found
​
# 13. len
# len(seq)  -  求字符串的长度、或者别的包含元素的容器的元素个数
seq1, seq2, seq3, seq4 = 'zxccv', [1, 2, 3], {3, 4, 5}, {1: "q", 2: "w"}
print(len(seq1))  # 5
print(len(seq2))  # 3
print(len(seq3))  # 3
print(len(seq4))  # 2
​
# 14. ljust
# str.ljust(width, fillchar)  -  使str左对齐,并用fillchar填充str至指定长度,如果不指定fillchar则默认空格
str1 = 'zzz'
print(str1.ljust(10, '1'))  # zzz1111111
print(str1.ljust(10))  # zzz
​
# 15. rjust
# str.rjust(width, fillchar)  -  使str右对齐,并用fillchar填充str至指定长度,如果不指定fillchar则默认空格
str1 = 'zzz'
print(str1.rjust(10, '1'))  # 1111111zzz
print(str1.rjust(10))  #        zzz
​
# 16. lower
# str.lower()  -  将str中所有大写字符转为小写字符
str1 = 'qwerYUIP'
print(str1.lower())  # qweryuip
​
# 17. strip
# str.strip(chars)  -  删除str两端指定的chars,chars可以倒序匹配
str1 = '123adioqe321'
print(str1.strip('123'))  # adioqe
# 若无法匹配到chars,则会返回原str
print(str1.strip('z'))  # 123adioqe321
# 还可以部分匹配
print(str1.strip('z1'))  # 23adioqe32
​
# 18. lstrip
# str.lstrip(chars)  -  删除str左端指定的chars
str1 = '123world321'
print(str1.lstrip('123'))  # world321
​
# 19. rstrip
# str.rstrip(chars)  -  删除str右端指定的chars
str1 = '123world321'
print(str1.rstrip('123'))  # 123world
​
# 20. maketrans
# str.maketrans(intab, outtab)  -  将str中需要替换的intab部分的字符串替换成相应的映射outtab,并且替换是每个字符按顺序一一对应的,in和out长度相同
str1,intab, outtb = '198uio', '198', 'qwe'
transtab = str1.maketrans(intab, outtab)
print(str1.translate(transtab))  # qweuio
​
# 21. replace
# str.replace(old_str, new_str, n)  -  将str中的old_str替换成new_str,n代表最大转换次数,不加n代表全部转换
str1 = 'woooohoooo'
print(str1.replace('o', 'i'))  # wiiiihiiii
print(str1.replace('o', 'i', 2))  # wiioohoooo
​
# 22. rfind
# str.rfind(str1, start=, end=)  -  str中指定范围内,从尾端开始搜寻,返回str1最后一次出现的位置,如果没有找到则返回-1。不写start和end则搜寻整个str
str1, str2 = 'haha world!', 'ha'
print(str1.rfind(str2, 0, 2))  # 0
print(str1.rfind(str2))  # 2
​
# 23. rindex
# # # str.index(str, start=, end=)  -  功能与index相同,区别在于从str尾端开始寻找,
str1 = 'well you can leave!'
print(str1.rindex('you'))  # 5
# 由于是从右边开始搜寻的,you不在给定的下标范围呢,所以找不到
print(str1.rindex('you', 8, len(str1)))  # ValueError: substring not found
​
# 24. split
# str.split(str1, n)  -  以str1为断点将str分割为n+1段,n规定了分割n次,如果不写n则全部分割,并返回由分割剩余部分组成的列表
str1, str_split = 'qwe1rty1uio1pas', '1'
print(str1.split(str_split))  # ['qwe', 'rty', 'uio', 'pas']
print(str1.split(str_split, 1))   # ['qwe', 'rty1uio1pas']
​
# 25, splitlines
# str.splitlines(keepends)  -  将str以换行符为切点切割,在输出结果里是否去掉换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。
print('ab c\n\nde fg\rkl\r\n'.splitlines())  # ['ab c', '', 'de fg', 'kl'] 默认为false,所以不保留换行符
print('ab c\n\nde fg\rkl\r\n')
"""
ab c
​
kl
"""
print('ab c\n\nde fg\rkl\r\n'.splitlines(True))  # ['ab c\n', '\n', 'de fg\r', 'kl\r\n']
​
# 26. startswith
# str.startswith(str1, start=, end=)  -  确定str是否以str1作为开头,如果指定了范围则以范围内的str部分开始。正确返回true,错误则返回false
str1, sta_str = 'yoha world!', 'yo'
print(str1.startswith(sta_str))  # True
print(str1.startswith(sta_str, 3, len(str1)))  # False
​
# 27. translate  -  见20. maketrans方法
intab, outtab = 'aeiou', '12345'
transtab = str.maketrans(intab, outtab)
str1 = 'you shall love me'
print(str1.translate(transtab))  # y45 sh1ll l4v2 m2
​
# 28. upper
# str.upper()  -  将str中的小写字母转换成大写字母
str1 = 'qwe123TYU嘿嘿嘿'
print(str1.upper())  # QWE123TYU嘿嘿嘿 非字母部分不受影响
​
# 29. zfill
# str.zfill(width)  -  将str右对齐,并用0填充至wdth长度
str1 = 'qwe'
print(str1.zfill(5))  # 00qwe
print(str1.zfill(2))  # qwe 如果width<= str本身的长度,则输出原str
​
# 30. casefold
# str.casefold()  -  消除大小写,也是转换成小写,与lower的不同之处在于lower只会转换英文字母,casefold还可以转换别的字母
str1 = 'HAHA WORLD ß!'
print(str1.casefold())  # haha world ss!
print(str1.lower())  # haha world ß!
​
"""
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
"""
# 31. expandtabs
# str.expandtabs(tablesize=n)  -  将str中的每个制表符\t之前用空格代替,默认为8个空格
str1 = "this is\tstring example....wow!!!"
print("Original string: ", str1)  # Original string:  this is  string example....wow!!!
​
# 32. format  -  一种格式化函数,功能为传递参数
# 通过字典key值设置参数
dict1 = {'name': '胡兴航', 'revenue': '50,000$'}
print('名字:{name}, 月收入:{revenue}'.format(**dict1))  # 名字:胡兴航, 月收入:50,000$
# 通过列表索引设置参数
list1 = ['胡兴航', '50,000$']
print('名字:{0[0]}, 月收入:{0[1]}'.format(list1))  # 0是必须写的  # 名字:胡兴航, 月收入:50,000$
# 若参数未组成容器
# str1 = "{}{}{}".format("hello", "world")
# print('str1 = %s' % str1)  # IndexError: Replacement index 2 out of range for positional args tuple  -  替换索引值2超过了位置参数args组成的元组的范围(0,1)
​
str2 = "{1} {1}".format("hello", "world")
# 替换索引相同,则传递的参数相同
print('str2 = %s' % str2)  # str2 = world world
​
str3 = "{1} {1} {0}".format("hello", "world")
# 替换索引不同,则传递的参数不同,且只要替换索引的范围不超过args元组的范围就可以多次传参
print('str3 = %s' % str3)  # str3 = world world hello
​
str4 = '{} {}'.format('hello', 'world', 'you')
# 默认替换索引则与args元组的索引相同,但替换索引范围不可超过元组索引,否则会报错
print('str4 = %s' % str4)  # str4 = hello world
​
# 32. partition
# str1.partition(str2)  -  将str1以str2为切点进行分割,得到str2左边的字符串、str2、str2右边的字符串组成的三元元组
str1 = 'qw1qw1qw1'
print(str1.partition('1'))  # ('qw', '1', 'qw1qw1')  # 从字符串左边开始匹配,就算有多个str2,也只会切割第一个
​
# 33. rpartition
# str1.rpartition(str2)  -  功能与partition类似,区别在于从str1左边开始匹配,其余相同
str1 = 'qw1qw1qw1qw'
print(str1.rpartition('1'))  # ('qw1qw1qw', '1', 'qw')
​
# 34. removeprefix
# str.removeprefix(sub_str)  -  如果str以sub_str开头,则移除sub_str,并将剩余的部分生成一个新的字符串。若无法匹配,则返回原str
str1 = 'hahaworld!'
print(str1.removeprefix('haha'))  # world!
print(str1)  # hahaworld!  # 原字符串并未改变
print(str1.removeprefix('1haha'))  # hahaworld!
​
# 35. removesuffix
# str.removesuff(sub_str) - 匹配str是否以sub_str结尾,其余与removeprefix相同
str1 = 'hahaworld'
print(str1.removesuffix('ld'))  # hahawor
​
# 36. isprintable
# str.isprintable()  -  判断str中所有字符是否可以打印(不可打印的字符可以是回车和换行符),能则返回true,不能则返回false,空串判断为true
str1 = '' \
       '\n'
print(str1.isprintable())  # False
str2 = ''
print(str2.isprintable())  # True
​
​
# 37. isidentifier
# str.isidentifier  -  判断str是否是有效标识符(可以作为变量名字),是则返回true,否则返回false。标识符不能用数字开头、不能有空格
print('is'.isidentifier())  # True  # 虽然不建议用is作为标识符,但是可以用
print('name'.isidentifier())  # True
print('1two'.isidentifier())  # False  # 由于标识符不能以数字开头,所以不合法
print('p p'.isidentifier())  # False  # 含有空格,所以不合法
​
# 38. isascii
# str.isascii()  -  判断str的字符是否都在 U+0000-U+007F 范围内,是则返回true,否则返回false。空串返回true
print('你'.isascii())  # False
print('1y'.isascii())  # True
print(''.isascii())  # True
​
# 39. isalpha
# str.isalpha  -  判断str是否全部由字母组成。如果str至少有一个字符且所有字符都为字母则返回true,否则返回false。字母为广义字母,中文等语言都可以,
str1, str2, str3, str4 = 'sherlock', 's胡さしнпрστυ', '123', 'sher lock'
print(str1.isalpha())  # True
print(str2.isalpha())  # True
print(str3.isalpha())  # False
print(str4.isalpha())  # False  # 由于存在空格,所以返回false
​
# 40. isalnum
# str.isalnum()  -  如果 str 至少有一个字符并且所有字符都是字母(广义)或数字则返回 True,否则返回 False
str1, str2, str3 = '2weeks', '2个人', 'q_p 2]'
print(str1.isalnum())  # True
print(str2.isalnum())  # True
print(str3.isalnum())  # False
​
# 41. format_map
# str.format_map(mapping)  -  与str.format类似,区别在于参数mapping只为字典对象
infro = {'name': '胡兴航', 'revenue': '50,000$'}
print('my name is {name}, my revenue is {revenue}.'.format_map(infro))  # my name is 胡兴航, my revenue is 50,000$.
举报

相关推荐

day10-字符串

day10-函数作业

0 条评论