字符串

知识点

统计&定位

1
2
3
4
5
6
# 统计字符串中字符的个数
len(str_name)
# 统计字符串中子字符串出现的次数
str_name.count("字符串")
# 定位字符串中子字符串出现的位置
str_name.index("字符串")

判断类型

方法 说明
str_name.isspace() 判断是否只包含空格,返回true
str_name.isalnum() 若字符中至少有一个字符,且所有字符均为字母/数字,则返回true
str_name.isalpha() 若字符中至少有一个字符,且均为字母则返回true
str_name.isdecimal() 若字符中均为数字则返回true(全角数字)
str_name.isdigit() 若字符中只包含数字则返回true(全角数字、(1)、\u00b2)
str_name.isnumeric() 若字符中只包含数字则返回true(全角数字、汉字数字)
str_name.istitle() 若字符为**标题化(每个单词的首字母大写)**,则返回true
str_name.islower() 若字符中至少包含一个区分大小写的字符,且所有这些字符(区分大小写的字符都是小写,则返回True)
str_name.isupper() 若字符中至少包含一个区分大小写的字符,且所有这些字符(区分大小写的字符都是大写,则返回True)

查找和替换

方法 说明
str_name.startswith(“str”) 检查字符串是否以str开头,返回true
str_name.endswith(“str”) 检查字符串是否以str结尾,返回true
str_name.find(“str”, 0, len(str_name)) 检查子字符串str是否包含再str_name中,返回字符串第一次出现的位置,否则返回-1。第二个参数:起始位置,第三个:终止位置
str_name.rfind(“str”, start=0, end=len(str_name)) 与find函数相同,只不过是从右边开始寻找
str_name.index(“str”, start=0, end=len(str_name)) 与index方法类似,只不过指定了范围,若搜索字符串不在父字符串中,则报错
str_name.rindex(“str”, start=0, end=len(str_name)) 与index方法类似,是从右边开始寻找
str_name.replace(old_str, new_str, num=string.count(“old_str”)) 将字符串中的子字符old_str替换成新字符new_str,若指定了num,则替换次数不超过num次。该方法不会修改原来的字符

大小写转换

方法 说明
str_name.capitalize() 将字符串中的第一个字符大写
str_name.title() 将字符串中的每个单词首字母大写
str_name.lower() 将字符串中所有大写字母全部转换为小写
str_name.upper() 将字符串中所有小写字母转为大写
str_name.swapcase() 反转字符串中的大小写

文字对齐

方法 含义
str_name.ljust(width, ‘fillchar’) 返回字符串左对齐,默认使用空格填充至长度width的新字符串,可指定fillchar填充
str_name.rjust(width, ‘fillchar’) 返回字符串右对齐,默认使用空格填充至长度width的新字符串,可指定fillchar填充
str_name.center(width, ‘fillchar’) 返回字符串居中对齐,默认使用空格填充至长度width的新字符串,可指定fillchar填充

去除空白字符

方法 含义
str_name.lstrip() 截掉str_name左侧(开始)的空白字符
str_name.rstrip() 截掉str_name右侧(开始)的空白字符
str_name.strip() 截掉str_name左右两侧的空白字符

拆分和拼接

方法 含义
str_name.partition(str) 将字符串拆分成3元素的元组(str左边, str, str右边)
str_name.rpartition(str) 类似于partition,只不过是从字符串的右侧拆分
str_name.split(str=””, num) 以str作为分隔符切片str_name,如果num有指定值,则仅分割num+1个子字符,str默认包含’\r’、’\t’、’\n’和空格
str_name.splitlines() 按照行(‘\n’、’\r’、’\r\n’)分割,返回一个包含各行作为元素的列表
str.join(str_list) 以str作为链接符,将字符串列表str_list中所有的元素合并为一个新的字符串

切片

1
2
3
4
# 切片是指利用索引来输出数据,其指定的区间是左闭右开型
# 可以通过-1开始倒序截取
# 步长默认为1
字符串[开始索引:结束索引:步长]

作业

  1. 定义一个字符串shuai,其内容为:os.environ.setdefault(“DJANGO_SETTINGS_MODULE”, “HttpRunnerManager.settings”),并统计字符串中包含字符的个数
  2. 统计字符串中”en”字符出现的次数
  3. 定位到”envir”第一次出现的位置
  4. 判断字符串是否由空格组成,并打印出判断结果
  5. 判断字符串是否均由字母和数字组成,并打印出判断结果
  6. 判断字符串是否全由字母组成,并打印出判断结果
  7. 判断字符串是否全由阿拉伯数字组成,并打印出判断结果
  8. 在第一题基础上判断字符串是否只包含数字(数字包括全角数字、(1)、\u00b2),并打印出结果
  9. 在第一题基础上判断字符串是否只包含数字(数字包括全角数字、汉字数字),并打印出结果
  10. 判断字符串标题化,并打印出结果
  11. 判断当前字符串中的字母部分是否全部为小写
  12. 判断当前字符串中的字母部分是否全部为大写
  13. 判断字符串是否以”os”开头
  14. 判断字符串是否以“os”结尾
  15. 在字符串中从左向右查找字符”ner”的位置,寻找的起始位置为1,中止位置为字符串的末尾(两种方法)
  16. 在字符串中从右向左查找字符”ner”的位置,寻找的起始位置为2,中止位置为字符串的开头(两种方法)
  17. (问答)find方法、index方法寻找字符串时有什么区别
  18. 将字符串中出现的前两个的”en”替换成”ne”,并将替换后的字符打印出来
  19. 将字符串中第一个字母转换为大写
  20. 将字符串中的每一个单词的首字母转换为大写
  21. 将字符串中所有的字母转换为小写
  22. 将字符串中的所有的字母转为大写
  23. 将字符串中的小写字母转换为大写,同时将字符串中的大写字母转换为小写
  24. 扩充字符的长度至150个字符,并且设定有内部的部分左对齐,其它填充部分以字符*填充
  25. 扩充字符的长度至150个字符,并且设定有内部的部分右对齐,其它填充部分以字符*填充
  26. 扩充字符的长度至150个字符,并且设定有内部的部分居中对齐,其它填充部分以字符*填充
  27. 去除字符串左侧的所有空白字符
  28. 去除字符串右侧的所有空白字符
  29. 去除字符串两侧的所有空白字符
  30. 按照从左向右第一个出现的字符”en”将字符串分割成三部分的元组
  31. 按照从右向左第一个出现的字符”en”将字符串分割为三部分组成的元组
  32. 以字符串中.作为分隔符,将字符串分割为3个部分
  33. 将字符串按照行分割成为一个列表
  34. 创建一个列表test,其内容为[“shuai”,”qi”,”baqi”, “i”, “was”, “shuai”],然后使用链接符”-“,将test列表中各个元素拼接成一个字符串
  35. 通过切片打印出列表test前两个字符串
  36. 通过切片打印出倒数第二个元素到列表中第一个元素的信息
  37. 通过切片,从第一个元素开始,每隔一个元素,打印出一个元素信息
  38. 通过切片将列表的元素倒叙打印出来
  39. (问答)在切片中,列表的起始、终止的位置的包含关系是什么样的