1.切片:
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长]
注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
>>> string = "abcdefg"
>>> print(string[1:4])#取下标从1到3的元素
bcd
>>> print(string[0:-1:2])#取下标0到倒数第二个的元素,并隔一个取一个值
ace
>>> string = "abcdefg"
>>> print(string[::-1])#实现字符串的反转
gfedcba
2.字符串常见操作
使用字符串为:mystr = “how are you ? best wish for you”
- find:
检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1.
语法:mystr.find(str, start=0, end=len(mystr))
>>> mystr.find("you",3,10)#从下标为3开始,到小标为10结束,查找"you",没有找到,返回-1
-1
>>> mystr.find("you",3,20)#从下标为3开始,到小标为20结束,查找"you",第一次找到就返回下标
8
>>> mystr.find("you")
8
- index
跟find()方法一样,只不过如果str不在 mystr中会报一个异常.
语法:mystr.index(str, start=0, end=len(mystr))
>>> mystr.index("you",3,10)#从下标为3开始,到小标为10结束,查找"you",没有找到,报错
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
mystr.index("you",3,10)
ValueError: substring not found
- count
返回 str在start和end之间 在 mystr里面出现的次数.
语法:mystr.count(str, start=0, end=len(mystr))
>>> mystr.count("you",3,10)
0
>>> mystr.count("you",3,20)
1
>>> mystr.count("you")
2
- replace
把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.不指定全部替换
语法:mystr.replace(str1, str2, mystr.count(str1))
>>> mystr.replace("you","she",1)
'how are she ? best wish for you'
>>> mystr.replace("you","she")
'how are she ? best wish for she'
- split
以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
语法:mystr.split(str,maxsplit)
>>> mystr.split(" ",3)
['how', 'are', 'you', '? best wish for you']
>>> mystr.split(" ")
['how', 'are', 'you', '?', 'best', 'wish', 'for', 'you']
- capitalize
把字符串的第一个字符大写
语法:mystr.capitalize()
>>> mystr.capitalize()
'How are you ? best wish for you'
- title
把字符串的每个单词首字母大写
语法:mystr.title()
>>> mystr.title()
'How Are You ? Best Wish For You'
- startswith
检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False
语法:mystr.startswith(obj)
>>> mystr.startswith("best")
False
>>> mystr.startswith("how")
True
- endwith
检查字符串是否以obj结束,如果是返回True,否则返回 False.
语法:mystr.endswith(obj)
>>> mystr.endswith("you")
True
>>> mystr.endswith("?")
False
- lower
转换 stt 中所有大写字符为小写
语法:stt.lower()
>>> stt="HOW ARE you"
>>> stt.lower()
'how are you'
- upper
转换 mystr 中的小写字母为大写
语法:mystr.upper()
>>> mystr.upper()
'HOW ARE YOU ? BEST WISH FOR YOU'
- ljust
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
语法:mystr.ljust(width)
>>> mystr.ljust(50)
'how are you ? best wish for you '
- rjust
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
语法:mystr.rjust(width)
>>> mystr.rjust(50)
' how are you ? best wish for you'
- center
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
语法:mystr.center(width)
>>> mystr.center(50)
' how are you ? best wish for you '
- lstrip
删除 string 左边的空白字符
语法:string.lstrip()
>>> string = " how much money "
>>> string.lstrip()
'how much money '
- rstrip
删除 string 字符串末尾的空白字符
语法:string.rstrip()
>>> string = " how much money "
>>> string.rstrip()
' how much money'
- strip
删除string字符串两端的空白字符
语法:string.strip()
>>> string = " how much money "
>>> string.strip()
'how much money'
- rfind
类似于 find()函数,不过是从右边开始查找.
语法:mystr.rfind(str, start=0,end=len(mystr) )
>>> mystr.rfind("you")
28
>>> mystr.rfind("you",0,20)
8
- rindex
类似于 index(),不过是从右边开始.
语法:mystr.rindex( str, start=0,end=len(mystr))
>>> mystr.rindex("you")
28
- partition
把mystr以str分割成三部分,str前,str和str后
语法:mystr.partition(str)
>>> mystr.partition("you")
('how are ', 'you', ' ? best wish for you')
- rpartition
类似于 partition()函数,不过是从右边开始.
语法:mystr.rpartition(str)
>>> mystr.rpartition("you")
('how are you ? best wish for ', 'you', '')
- splitlines
按照行分隔,返回一个包含各行作为元素的列表
语法:string.splitlines()
>>> string = "best\nwish\nyou"
>>> print(string)
best
wish
you
>>> string.splitlines()
['best', 'wish', 'you']
- isalpha
如果 string 所有字符都是字母 则返回 True,否则返回 False
语法:string.isalpha()
>>> string = "abc"
>>> string.isalpha()
True
>>> string = "abc123"
>>> string.isalpha()
False
- isdigit
如果 string 只包含数字则返回 True 否则返回 False.
语法:string.isdigit()
>>> string = "123"
>>> string.isdigit()
True
>>> string = "abc123"
>>> string.isdigit()
False
- isalnum
如果 string所有字符都是字母或数字则返回 True,否则返回 False
语法:string.isalnum()
>>> string = "abc123"
>>> string.isalnum()
True
>>> string = "abc123!@"
>>> string.isalnum()
False
- isspace
如果 string中只包含空格,则返回 True,否则返回 False.
语法:string.isspace()
>>> string = " "
>>> string.isspace()
True
>>> string = " a"
>>> string.isspace()
False
- join
string中每个字符后面插入str列表,构造出一个新的字符串
语法:string.join(str)
>>> str = ["i","like","you"]
>>>> " ".join(str)
'i like you'
Q:给定一个字符串string,返回使用空格或者’\t’分割后的倒数第二个子串
提示:"\t"也属于空格
string.split()