速查表

编号 函数 说明
0 str[]、str[:] 索引与切片
1 find 查找,返回索引
2 index 查找,返回索引。未找到报异常
3 count 统计字符出现次数
4 replace 查找替换
5 split 字符串拆分成列表
6 capitalize 首字母大写
7 title 每个单词首字母大写
8 upper 全部大写
9 lower 全部小写
10 startswith 是否指定的字符串开头
11 endswith 是否指定的字符串结尾
12 center 以指定的字符填充到指定长度,并居中
13 ljust 以指定的字符填充到指定长度,并左对齐
14 rjust 以指定的字符填充到指定长度,并右对齐
15 lstrip 删除左边的空白
16 rstrip 删除右边的空白
17 strip 删除两边的空白
18 rfind 从右边开始查找
19 rindex 从右边开始查找
20 partition 以指定的字符,拆分成三部分
21 rpartition 从右边开始找指定的字符,拆分成三部分
22 splitlines 按照行分隔,拆分成列表
23 isalpha 是否都是字母
24 isdigit 是否都是数字
25 isalnum 是否由字母和数字构成
26 isspace 是否都是空格
27 join 以指定字符,将列表拼接成字符串

字符串是什么

perfect = "hello itfun.tv"

其实就是一段文字。在双引号或者单引号中的数据,Python 就默认它是字符串。

下标与索引

说明:索引是通过下标取一个元素。

school = "itfun.tv"

print(school[0])
print(school[1])
print(school[2])

切片

说明:切片是通过下标取一段元素。

语法:

str[起始:结束:步长]

选取的区间从起始位开始,到结束位的前一位结束(不包含结束位本身)。步长表示选取间隔。

示例:

school = "itfun.tv"

school[0:5]
school[2:5]   # 取 下标为3、4 的字符
school[2:]    # 取 下标为2开始 到 结束 的字符
school[1:-1]  # 取 下标为1开始 到 倒数第1 之间的字符
school[:2]    # 取 下标为0开始 到 下标为2 之间的字符

school[::2]   # 从前向后,按步长为2进行取值
school[::-2]  # 从后向前,按步长为2进行取值
school[::-1]  # 反转,从后向前,按步长为1进行取值

字符串常用操作

定义字符串,以下示例若没有额外定义,都以此为基础演示。

str = "hello, world!"

1. find

说明:检测 mystr 是否包含在 str 中,如果是,返回对应的索引值,否则返回 -1

语法:

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

示例:

str.find("or")      # 8
str.find("good")    # -1
str.find("or", 0, 9)
str.find("or", 0, 10)

2. index

说明:与 find() 方法一样,只不过如果 mystr 不在 str 中会报一个异常。

语法:

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

示例:

str.index("good")

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

3. count

说明:返回 mystrstartend之间,在 str 里面出现的次数。

语法:

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

示例:

str.count("l")

4. replace

说明:把 str 中的 str1 替换成 str2。如果 count 指定,则替换不超过 count 次。

语法:

str.replace(str1, str2,  str.count(str1))

示例:

str.replace("l", "L")
str.replace("l", "L", 2)

5. split

说明:以 mystr 为分隔符切片 str。如果 maxsplit 有指定值,则仅分隔 maxsplit 个子字符串。 如果 maxsplit 未指定或为 -1,则不限制拆分次数(进行所有可能的拆分)。

语法:

str.split(mystr=" ", maxsplit=-1)    

示例:

name = "hello world hello itfun"
name.split(" ")
name.split()
name.split(" ", 2)

6. capitalize

说明:首字母大写

语法:

str.capitalize()

示例:

str.capitalize()

7. title

说明:每个单词首字母都大写

语法与示例:

str.title()

8. upper

说明:全部大写

语法与示例:

str.upper()

9. lower

说明:全部小写

语法与示例:

school = "ITFun School"
school.lower()

10. startswith

说明:是否以指定的字符串开头, 是则返回 True,否则返回 False

示例:

str.startswith("He")
str.startswith("hel")

11. endswith

说明:是否以指定的字符串结尾, 是则返回 True,否则返回 False

示例:

str.endswith("!")
str.endswith("a")

12. center

说明:将字符串以指定的字符(默认是空格)填充到长度 width,并居中

语法:

str.center(width, fillchar=" ")

示例:

str.center(50, "*")
str.center(50)

13. ljust

说明:将字符串以指定的字符(默认是空格)填充到长度 width,并左对齐

语法:

str.ljust(width, fillchar=" ")

示例:

str.ljust(50, "*")
str.ljust(50)

14. rjust

说明:将字符串以指定的字符(默认是空格)填充到长度 width,并右对齐

语法:

str.rjust(width, fillchar=" ")

示例:

str.rjust(50, "*")
str.rjust(50)

15. lstrip

说明:删除 str 左边的空白字符

语法:

str.lstrip()

示例:

school = "     itfun.tv  "
school.lstrip()

16. rstrip

说明:删除 str 右边的空白字符

语法:

str.rstrip()

示例:

school = "     itfun.tv  "
school.rstrip()

17. strip

说明:删除 str 两边的空白字符

语法:

str.rstrip()

示例:

school = "     itfun.tv  "
school.strip()

18. rfind

说明:类似于 find() 函数,不同的是从右边开始查找。

语法:

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

示例:

str.find("or")  # 7

19. rindex

说明:类似于 index() 函数,不同的是从右边开始查找。

语法:

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

示例:

str.rindex("or")  # 7
str.rindex("good")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

20. partition

说明:把 strmystr 分割成三部分,str前strstr后

语法:

str.partition(mystr)

示例:

school = "hello there, itfun school, itfun.tv"
school.partition("itfun")

21. rpartition

说明:类似于 partition() 函数,不同的是从右边开始。

语法:

str.rpartition(mystr)

示例:

school = "hello there, itfun school, itfun.tv"
school.rpartition("itfun")

22. splitlines

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

语法:

str.splitlines()

示例:

str = "hello\nwrold"
print(str)
str.splitlines()

23. isalpha

说明:判断所有字符是否都是字母,是则返回 True,否则返回 False

语法:

str.isalpha()  

示例:

str = "abc"
str.isalpha()

str = 123
str.isalpha()

str = "abc 123"
str.isalpha()

24. isdigit

说明:判断所有字符是否都是数字,是则返回 True,否则返回 False

语法:

str.isdigit()  

示例:

str = "abc"
str.isdigit()

str = 123
str.isdigit()

str = "abc 123"
str.isdigit()

25. isalnum

说明:判断所有字符都是由字母或数字构成,是则返回 True,否则返回 False

语法:

str.isalnum()

示例:

str = "abc"
str.isalnum()

str = 123
str.isalnum()

str = "abc123"
str.isalnum()

str = "abc 123"
str.isalnum()

26. isspace

说明:判断是否只包含空格,是则返回 True,否则返回 False

语法:

str.isspace()

示例:

str = "abc"
str.isspace()

str = "   abc"
str.isspace()

str = ""
str.isspace()

str = "   "
str.isspace()

27. join

说明:以指定字符 str,将列表 list 拼接成字符串。

语法:

str.join(list)

示例:

str = " "
list = ["热干面", "三鲜豆皮", "米酒汤圆", "烧麦"]
str.join(list)

str = "|"
str.join(list)

练习

  • 现有字符串: str = '1234567890',根据题目要求,将截取后的新字符串赋值给 result
1. 截取字符串的第一位到第三位的字符
2. 截取字符串最后三位的字符
3. 截取字符串的全部字符
4. 截取字符串的第七个字符到结尾
5. 截取字符串的第一位到倒数第三位之间的字符
6. 截取字符串的第三个字符
7. 截取字符串的倒数第一个字符
8. 截取与原字符串顺序相反的字符串
9. 截取字符串倒数第三位与倒数第一位之间的字符
10. 截取字符串的第一位字符到最后一位字符之间的字符,每隔一个字符截取一次。
  • 统计字符串中,各个字符出现的个数。例如:"hello world" 字符串的统计结果为: h:1 e:1 l:3 o:2 d:1 r:1 w:1