字符串是 Python 的基础数据类型。我们常用引号('或")来创建字符串,字符串在程序中是最常用的数据类型之一。

一、创建字符串

创建字符串很简单,为变量分配一个值即可。如下:

注意:当我们字符串中包含单引号(')使用双引号创建字符串;字符串包含双引号(")使用单引号创建。三个引号(''')里面能出现单引号双引号回车键等,三个引号中字符串会保持传入的格式。

你可以是试下三个双引号创建字符串("""),它和三个单引号差不多。

二、字符串的连接

连接字符串使用‘+’号

小白常识:TypeError错误,为数据类型不正确,以后程序遇到此错误,可以检查报错位置的数据,数据类型是否正确。

三、Python字符串运算符

Python字符串运算常用的连接(+)、是否存在(innot in)、原始字符串(r/R)

1、Python字符串连接

见上面二的内容

2、是否存在(innot in)

如果需要判断一个字符串是否包含另一个,我们可以使用innot in。

str1 in str,判断str1字符串存于str2字符串中,存在返回True,否则False str1 not in str,判断str1字符串不存于str2字符串中,与in相反

示例:

3、Python原始字符串(r/R)

注意:可以先看后面的【四、转义】,然后返回来看这部分

原始字符串,所有的字符串都是直接按照字面的意思来使用,它没有转义或不能打印的字符。即,字符串中的转义失效,你看到的是什么样,它的结果就是什么样。

原始字符串在字符的第一个引号前面加上r(可大写可小写),其他与字符串的语法相同。

示例:

拓展:原始字符串多用于文件地址的输入和正则表达式,如:r'C:WindowsSystem32',不用对 加上 了。

四、python转义字符

在需要在字符中使用特殊字符时,python用反斜杠()转义字符,如换行 n、r 回车、t 横向制表符(tab键)等

用得最多的是,',",n,t 五个

示例:

五、字符串的切片

字符串的切片看上去非常复杂,其实很简单,分为下面几种

首先理解,字符串中每个字符都分配一个数字索引,第一个索引是0,第二个索引是1,依此类推。

1、获取单个字符

str[index] index为下标索引,从0开始,如果索引为负数则是倒着开始

2、获取多个字符

str[start:end] 读取索引start开始到索引为end-1 结束的字符 。

3、通过步长截取(自动化中没什么用)

str[start:end:step] 读取索引start开始每相隔step读取字符直到索引为end-1 结束

4、拓展

字符串切片有几种特殊的用法

六、字符串函数

1、常用字符串函数

注意:所有的字符串函数都是有返回值的,它不是对原有字符串操作,你需要一个变量来接收你处理后的字符串。

如:a=string.strip(),string.strip()得到的值传递给a,但是string的值没有被改变。

2、字符串函数大全(新手快速略过,有些的知道有这个函数就可以,用的时候查资料)

#字母处理

1.string.capitalize()

返回元字符串,且将字符串第一个字母转为大写,其它字母小写

2.string.title()

返回元字符串,且将字符串第一个字母转为大写,其它字母小写

3.string.swapcase()

用于对字符串的大小写字母进行转换,小写字符转为大写,大写字母转为小写

4.string.upper()

将字符串全部转为大写

5.string.lower()

将字符串全部转为小写

#去除空格或者指定字符串

1.string.strip([string])

去除字符串中首尾的字符串,不带参数默认去除空格

2.string.lstrip([string])

去除字符串左边字符串,不带参数默认去除空格

3.string.rstrip([string])

去除字符串右边字符串,不带参数默认去除空格

#格式化对齐

1.string.center(width[, fillchar])

返回一个原字符串居中对齐,width为总长度,两边用一个字符fillchar填充,如果指定的长度小于原字符串的长度则返回原字符串。

注意:如果fillchar超过1个长度或为非字符串或为汉字,则会报出异常

2.string.ljust(width[, fillchar])

返回原字符串左对齐,并使用空格填充至指定长度的新字符串,如果指定的长度小于原字符串的长度则返回原字符串。注意:如果fillchar超过1个长度或为非字符串或为汉字,则会报出异常

3.string.rjust(width[, fillchar])

返回原字符串右对齐,并使用空格填充至指定长度的新字符串,如果指定的长度小于字符串的长度则返回原字符串。注意:如果fillchar超过1个长度或为非字符串或为汉字,则会报出异常

4.string.zfill()

返回指定长度的字符串,原字符串右对齐,前面填充0

#替换

1.string.replace(old, new[, count])

用新的字符替换老字符,还可以指定替换的个数,默认全部替换

2.string.expandtabs([n])

将字符串中(tab符号)t转换成n个空格

#字符串搜索

1.string.find(sub [,start [,end]])

返回sub字符串第一次出现的索引位置,可以通过start和stop参数设置搜索范围,如果未找到sub时返回-1

2.string.rfind(sub [,start [,end]])

返回sub字符串最后一次出现的索引位置,如果没有匹配项则返回-1,可以通过start和stop参数设置搜索范围

3.string.index(sub [,start [,end]])

类似于string.find()方法。注意:未找到sub时会报出异常

4.string.rindex(sub [,start [,end]])

类似于string.rfind()方法。注意:未找到sub时会报出异常

#字符串分割

1.string.split([sep [,maxsplit]])

用来根据指定的分隔符将字符串进行分割,不包含分隔符,结果存为列表,不指定sep时,默认将将空格作为分隔符

2.string.partition(sep)

用来根据指定的分隔符将字符串进行分割,分割点为首次出现sep的地方,且包含分隔符,结果存为元组,且固定为3个元素,如果sep不存在字符串中,则后面2个元素为空

3.string.rpartiton()

用来根据指定的分隔符将字符串进行分割,分割点为最后一次出现sep的地方,且包含分隔符,结果存为元组,且固定为3个元素,如果sep不存在字符串中,则前面2个元素为空

#字符串判断

1.string.isupper()

返回字符串中是否全为大写 --> True/False

2.string.islower()

返回字符串中是否全为小写 --> True/False

3.string.isdigit()

返回字符串中是否只包含数字 --> True/False

4.string.isalpha()

返回字符串中是否只包含字母 --> True/False

5.string.isalnum()

返回字符串中是否只包含字母或数字 --> True/False

6.string.isspace()

返回字符串中是否只包含空格(tab也算空格) --> True/False

7.string.istitle()

返回字符串中首字母是否大写 --> True/False

8.string.startswith(prefix[, start[, end]])

返回字符串是否以某字符串开始,可以通过start和stop参数设置搜索范围

9.string.endswith(suffix[, start[, end]])

返回字符串是否以某个字符串结束 可以通过start和stop参数设置搜索范围

#其它

1.string.count(sub[, start[, end]])

计数字符串中某子集的数量,可以通过start和stop参数设置搜索范围

2.len(string)

获取字符串的长度

3.list(string)

字符串转列表

4.string.join(iterable)

列表转字符串,用于将序列中的元素以指定的字符string连接生成一个新的字符串。注意:iterable只能是字符串类型,否则会报出异常

5.string.encode(encoding='UTF-8',errors='strict')

以 encoding 指定的编码格式编码字符串

6.string.decode(encoding='UTF-8',errors='strict')

解码字符串,出错默认报ValueError,除非errors是ignore或replace

7.string.translate(table [,deletechars])

根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到deletechars参数中

总结

2018年1月22日,第一次修改,优化表达语法,代码加上解释,字符串切片内容调整

2019年2月26日,第二次修改,加入思维导图