💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## 1. 基础 1. python中用单引号或者双引号包裹起来的一串字符就是字符串 2. 字符串实际上就是字符数组,字符串索引从0开始,-1表示字符串的最后一个字符 ## 2. 操作 ### 2.1 切片 #### 2.1.1 语法实例 对字符串进行切片,遵循左开右闭规则,对字符进行切片语法如下 [起始,结束,步长] - 从左边开始,按照步长取到结束下标的前一个字符串 ~~~ name = 'abcdef' print(name[0:3]) # 取下标为0-2的字符 === abc print(name[3:5]) # 取下标为3、4 的字符 === de print(name[2:]) # 从下标2开始取到最后 === cdef print(name[1:-1]) # 取下标为1开始到最后第2个之间的字符,-1表示最后一个字符 == bcde print(name[0::2]) # 从第一个字符,到最后一个字符,步长为2 === ace ~~~ #### 2.1.2 面试题 对字符串翻转,列举几种方法 1. 利用下标-1 ~~~ str = 'abcdef' print(str[::-1]) # fedcba ~~~ 2. reduce ~~~ from functools import reduce result = reduce(lambda x, y: y+x, str) print(result) ~~~ ### 2.2 其他常见操作 #### 2.2.1 find 检查字符或字符串是否存在于某一字符串中,如果存在返回字符或者字符串的起始index str.find(substr) #### 2.2.2 index 跟find()方法一样,只不过如果str不在 mystr中会报一个异常. mystr.index(str, start=0, end=len(mystr)) #### 2.2.3 count 返回 str在start和end之间 在 mystr里面出现的次数 mystr.count(str, start=0, end=len(mystr)) #### 2.2.4 replace 把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次. mystr.replace(str1, str2, mystr.count(str1)) #### 2.2.5 split 以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串 mystr.split(str=" ", 2) #### 2.2.6 capitalize 把字符串的第一个字符大写 mystr.capitalize() #### 2.2.7 title 把字符串的每个单词首字母大写 >>> a = "hello itcast" >>> a.title() 'Hello Itcast' #### 2.2.8 startswith 检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False mystr.startswith(obj) #### 2.2.9 endswith 检查字符串是否以obj结束,如果是返回True,否则返回 False. mystr.endswith(obj) #### 2.2.10 lower 转换 mystr 中所有大写字符为小写 mystr.lower() #### 2.2.11 upper 转换 mystr 中的小写字母为大写 mystr.upper() #### 2.2.12 ljust 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串 mystr.ljust(width) #### 2.2.13 rjust 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 ~~~ mystr.rjust(width) ~~~ ![](https://box.kancloud.cn/4d0710cf7db6f432213d7eefba62005b_492x119.png) #### 2.2.14 center 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 mystr.center(width) #### 2.2.15 lstrip 删除 mystr 左边的空白字符 ~~~ mystr.lstrip() ~~~ ![](https://box.kancloud.cn/3cbb4b5d7d19b7a67d00d8bdb1a2aa79_546x206.png) #### 2.2.16 rstrip 删除 mystr 字符串末尾的空白字符 ~~~ mystr.rstrip() ~~~ ![](https://box.kancloud.cn/fae79d5f3fe2bcf31980680034a335da_548x114.png) #### 2.2.17 strip 删除mystr字符串两端的空白字符 ~~~ >>> a = "\n\t hello \t\n" >>> a.strip() 'itcast' ~~~ #### 2.2.18 rfind 类似于 find()函数,不过是从右边开始查找. mystr.rfind(str, start=0,end=len(mystr) ) ~~~ mystr.rindex( str, start=0,end=len(mystr)) str2 = 'hello world tuna, you are my best friend!tuna' print(str2.find('tuna')) print(str2.rfind('tuna')) ~~~ ~~~ 12 41 ~~~ #### 2.2.19 rindex 类似于 index(),不过是从右边开始. #### 2.2.20 partition 把mystr以str分割成三部分,str前,str和str后 mystr.partition(str) #### 2.2.21 rpartition 类似于 partition()函数,不过是从右边开始. ~~~ mystr.rpartition(str) ~~~ #### 2.2.22 splitlines 按照行分隔,返回一个包含各行作为元素的列表 ~~~ mystr.splitlines() ~~~ ![](https://box.kancloud.cn/fa41d8ceea1362752f1f02409da1a469_507x202.png) #### 2.2.23 isalpha 如果 mystr 所有字符都是字母 则返回 True,否则返回 False ~~~ mystr.isalpha() ~~~ ![](https://box.kancloud.cn/fd7e57544262e607d841510309f161f6_367x291.png) #### 2.2.24 isdigit 如果 mystr 只包含数字则返回 True 否则返回 False. ~~~ mystr.isdigit() ~~~ ![](https://box.kancloud.cn/2bf8d75a17eaa09627096604913ea6e4_398x297.png) #### 2.2.25 isalnum 如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False mystr.isalnum() ![](https://box.kancloud.cn/e8c5a9580a6db6083d74ae24812b7141_431x385.png) #### 2.2.26 isspace 如果 mystr 中只包含空格,则返回 True,否则返回 False. mystr.isspace() ![](https://box.kancloud.cn/80a515d6f6d087bd30c13e4166cce157_390x382.png) #### 2.2.27 join mystr 中每个字符后面插入str,构造出一个新的字符串 mystr.join(str) ![](https://box.kancloud.cn/cfa7e13f3728a8c7afa1ccaf7de7ad1e_609x235.png)