字符串是 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日,第二次修改,加入思维导图