如有字符串mystr = 'hello world',以下是常见的操作

1. find

检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1,还可以指定范围内查找。

  1. mystr.find(str, start=0, end=len(mystr))

eg:

  1. str="hello world and hi you"
  2. print(str.find('and')) #12 也就是a所在的索引

数据不存在返回-1

2. index

跟find()方法一样,只不过如果str不在 mystr中会报一个异常.也可以指定范围,所以平时还是用

  1. mystr.index(str, start=0, end=len(mystr))

eg:没有找到字符串时会报错

  1. str="hello world and hi you"
  2. print(str.index('ha'))

image.png
如果找到了那么就会返回第一个字符所在的索引:

  1. str="hello world and hi you"
  2. print(str.index('and')) # 12 也就是a所在 的索引

3. count

返回 str在start和end之间 在 mystr里面出现的次数

  1. mystr.count(str, start=0, end=len(mystr))

示例如下:

  1. str="hello world and hi hi hi you"
  2. print(str.count('hi')) # 3

4. replace

把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.不指定次数那么全部替换。

  1. mystr.replace(str1, str2, mystr.count(str1))

示例如下:

  1. str="hello world and hi hi hi you"
  2. print(str.replace('hi','ha')) # hello world and ha ha ha you

5. split:根据指定数据对字符串中的数据进行分割

以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串

  1. mystr.split(str=" ", 2)

示例:

  1. mystr="name=wangyue&age=100"
  2. print(mystr.split("&")) # ['name=wangyue', 'age=100']列表

split不指定分隔符表示使用空白字符串(也就是一个空格)进行分割

  1. mystr="name=wangyue&age=100"
  2. print(mystr.split()) #['name=wangyue&age=100']
  1. mystr="a b c d"
  2. print(mystr.split()) #['a', 'b', 'c', 'd']

6. capitalize:首字母大写

把字符串的第一个字符大写

  1. mystr.capitalize()

7. title

把字符串的每个单词首字母大写

  1. >>> a = "hello itcast"
  2. >>> a.title()
  3. 'Hello Itcast'

8. startswith

检查字符串是否是以 hello 开头, 是则返回 True,否则返回 False

  1. mystr.startswith(hello)

示例:

  1. my_url="http://www.baidu.com"
  2. print(my_url.startswith('http')) # True
  3. print(my_url.startswith('ftp')) # False

9. endswith

检查字符串是否以obj结束,如果是返回True,否则返回 False.

  1. mystr.endswith(obj)

示例:

  1. my_url="http://www.baidu.com"
  2. print(my_url.endswith('com')) # True
  3. print(my_url.endswith('cn')) # False

10. lower

转换 mystr 中所有大写字符为小写

  1. mystr.lower()

示例:

  1. my_url="HTTP://WWW.BAIDU.COM"
  2. print(my_url.lower()) # http://www.baidu.com

11. upper

转换 mystr 中的小写字母为大写

  1. mystr.upper()

示例:

  1. my_url="http://www.baidu.com"
  2. print(my_url.upper()) # HTTP://WWW.BAIDU.COM

12. lstrip

删除 mystr 左边的空白字符(空格、TAB \t \n)

  1. mystr.lstrip()

13. rstrip

删除 mystr 字符串末尾的空白字符

  1. mystr.rstrip()

14. strip

删除mystr字符串两端的空白字符

  1. >>> a = "\n\t world \t\n"
  2. >>> a.strip()
  3. 'world'

扩展:
使用strip去除两边指定字符串

  1. my_str='!aaa!'
  2. print(my_str.strip('!')) #aaa

15. rfind

类似于 find()函数,不过是从右边开始查找.

  1. mystr.rfind(str, start=0,end=len(mystr) )

16. rindex

类似于 index(),不过是从右边开始.

  1. mystr.rindex( str, start=0,end=len(mystr))

17. partition

把mystr以str分割成三部分,str前,str和str后,生成的是元组类型的数据

  1. mystr.partition(str)

示例:

  1. mystr="baidu.com"
  2. print(mystr.partition("."),type(mystr.partition(".")) ) # ('baidu','.','com') <class 'tuple'>

18. rpartition

类似于 partition()函数,不过是从右边开始.

  1. mystr.rpartition(str)

19. splitlines:根据\n对数据进行分割

按照行分隔,返回一个包含各行作为元素的列表

  1. mystr.splitlines()

示例:

  1. my_str="第一行\n第二行"
  2. print(my_str.splitlines()) # ['第一行', '第二行']

20. isalpha

如果 mystr 所有字符都是字母 则返回 True,否则返回 False

  1. mystr.isalpha()

判断是不是都是字母,也就是(大小写a~z),数字会是false.
不常用,因为真正判断的时候用正则表达式更多。

21. isdigit

如果 mystr 只包含数字则返回 True 否则返回 False.是整型数字。

  1. mystr.isdigit()

示例:小数点也会返回false

  1. mystr.isdigit()
  2. 123 # True
  3. 1.23 # False
  4. abc123 #False

22. isalnum

如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False.不能有空格

  1. mystr.isalnum()

示例:

  1. mystr="abc123"
  2. print(mystr.isalnum()) # True
  3. mystr="abc 123"
  4. print(mystr.isalnum()) # False 有空格也不行

23. isspace

如果 mystr 中只包含空白字符,则返回 True,否则返回 False.

  1. mystr.isspace()

示例:

  1. mystr=" "
  2. print(mystr.isspace()) # True
  3. mystr="123 "
  4. print(mystr.isspace()) # False
  5. mystr='\t'
  6. print(mystr.isspace()) # True
  7. mystr='\n'
  8. print(mystr.isspace()) # True
  9. mystr=''
  10. print(mystr.isspace()) # False

24. join

str 中每个元素后面拼接上mystr,构造出一个新的字符串

  1. mystr.join(str)

示例:
字符串

  1. mystr='abc'
  2. add="!"
  3. result=add.join(mystr)
  4. print(result) # a!b!c

列表:(列表的每一项都得是字符串类型的)

  1. my_list=['a','b','c']
  2. add='#'
  3. result=add.join(my_list)
  4. print(result) # a#b#c

想一想

  • (面试题)给定一个字符串aStr,返回使用空格或者’\t’分割后的倒数第二个子串