Python入门 字符串处理(字符串连接\转义\字符串运算\字符串的多种引号区分\切片\常用函数) | 您所在的位置:网站首页 › python转义字符串函 › Python入门 字符串处理(字符串连接\转义\字符串运算\字符串的多种引号区分\切片\常用函数) |
字符串是 Python 的基础数据类型。我们常用引号('或")来创建字符串,字符串在程序中是最常用的数据类型之一。 一、创建字符串创建字符串很简单,为变量分配一个值即可。如下: # 使用Python自带IDLE 运行以下语句,注意观察的不同 var1 = 'Hello World!' print(var1) var2 = "木头人" print(var2) var3 = '''我要学习 python''' print(var3) # 注意观察输出结果的格式 var4 = "I'am woodman" print(var4) # \n 位换行转义 var5 = '我要学习"Python"\n,"Python"是门很简单的语言' print(var5) # \ 反斜杠为转义,可去掉\'Python\'的'\'看看程序会不会报错 var6 = '我要学习\'Python\',\'Python\'是门很简单的语言' print(var6)注意:当我们字符串中包含单引号(')使用双引号创建字符串;字符串包含双引号(")使用单引号创建。三个引号(''')里面能出现单引号双引号回车键等,三个引号中字符串会保持传入的格式。 你可以是试下三个双引号创建字符串("""),它和三个单引号差不多。 二、字符串的连接连接字符串使用‘+’号 # 加号连接很简单,两个字符串相加就可以 print('Hello'+' World!') # 字符串连接整型数据时会报错,如下: year = '2017' month = 8 # 注意写出下面代码会报TypeError错误,month为整数型,需要str进行转换 print(year+month) # 会报错 TypeError错误数据类型不对 print(year+str(month)) # str 强制转换为字符串类型小白常识:TypeError错误,为数据类型不正确,以后程序遇到此错误,可以检查报错位置的数据,数据类型是否正确。 三、Python字符串运算符Python字符串运算常用的连接(+)、是否存在(in\not in)、原始字符串(r/R) 1、Python字符串连接 见上面二的内容 2、是否存在(in\not in) 如果需要判断一个字符串是否包含另一个,我们可以使用in\not in。 str1 in str,判断str1字符串存于str2字符串中,存在返回True,否则Falsestr1 not in str,判断str1字符串不存于str2字符串中,与in相反示例: str1 = 'abcdefghijk' print('b' in str1) # b 存在str1 结果True print('b' not in str1) # b 存在str1 结果False print('cdf' in str1) # cdf 不存在str1 结果False print('cdf' not in str1) # cdf 不存在str1 结果True3、Python原始字符串(r/R) 注意:可以先看后面的【四、转义】,然后返回来看这部分 原始字符串,所有的字符串都是直接按照字面的意思来使用,它没有转义或不能打印的字符。即,字符串中的转义失效,你看到的是什么样,它的结果就是什么样。 原始字符串在字符的第一个引号前面加上r(可大写可小写),其他与字符串的语法相同。 示例: # 与转义的对比,你会发现所有的\ 转义都不起作用了 print(r'Hello\'' ' World!') print(r'C:\Windows\System32\') print('C:\\Windows\\System32\\') # 如果文件地址不使用原始字符串,需要在\前加上\转义 print(r'I\'am woodman') print(r"我要学习\"Python\"") print(R'linux\b') print(R'linux\ngood!') print(R'Python\vgood!') print(R'Python\t good!') print(R'woodman\r good!') print(R'woodman\f good!')拓展:原始字符串多用于文件地址的输入和正则表达式,如:r'C:\Windows\System32',不用对\ 加上 \ 了。 四、python转义字符在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符,如换行 \n、\r 回车、\t 横向制表符(tab键)等 用得最多的是\\,\',\",\n,\t 五个 示例: # 多练习几遍,注意观察值的变化 print('Hello\'' ' World!') print('C:\\Windows\\System32') print('I\'am woodman') print("我要学习\"Python\"") print('linux\b') print('linux\ngood!') # 会换行输出good print('Python\vgood!') # good会加上纵向制表符 print('Python\t good!') # good会加上横向制表符,相当于tab键 print('woodman\r good!') print('woodman\f good!') # 比较少用五、字符串的切片字符串的切片看上去非常复杂,其实很简单,分为下面几种 首先理解,字符串中每个字符都分配一个数字索引,第一个索引是0,第二个索引是1,依此类推。 1、获取单个字符 str[index] index为下标索引,从0开始,如果索引为负数则是倒着开始 print("Hello"[0]) # 获取第一个字符,字符获取从0开始,第二个字符为1 # 字符串的下标计数从0开始,它是一个标记特殊的list(数据结构会讲到) print("Hello"[2]) # 获取第三个字符 print("Hello"[-1]) # 获取倒数第一个字符,使用负数表示获取倒数第几个字符2、获取多个字符 str[start:end] 读取索引start开始到索引为end-1 结束的字符 。 w = 'woodman good!' print(w[1:3]) # 获取索引1到2的字符 输出结果:oo print(w[:4]) # 获取前4位 print(w[5:]) # 获取从索引号5开始后面的字符串 输出结果:an good! print(w[:]) # 获取整个字符串 print(w[5:-1]) # 获取从索引号5开始后面的字符串,不包括最后一位 输出结果:an good print(w[-5:-1]) # 获取倒数第5位到倒数第1位 输出结果:an good 输出结果:good3、通过步长截取(自动化中没什么用) str[start:end:step] 读取索引start开始每相隔step读取字符直到索引为end-1 结束 w = 'woodman good!' print(w[1:10:2]) # 表示从第二个字符开始截取,间隔2个字符取一个 #输出结果:oda o # 自己尝试一下索引为负数的4、拓展 字符串切片有几种特殊的用法 w = 'woodman good!' print(w[::2]) # 隔两个截取一个字符串 print(w[::-1]) # 字符串倒叙,这个是比较有意思的六、字符串函数1、常用字符串函数 # 前面4个要牢记,百分百用到 string = ' 我是个木头人,我是个大帅哥 ' string.replace('帅哥', '美女') # 替换字符串,帅哥替换从美女 string.strip() # 去除左右空格 string.split(',') # 拆分字符串,返回list string.find(',') # 查找字符串,返回索引号 string = "I'am woodman" print(string.upper()) # 将字符串全部转为大写 print(string.lower()) # 将字符串全部转为小写 print(string.title()) # 将字符串单词的第一个字母转为大写,其它字母小写注意:所有的字符串函数都是有返回值的,它不是对原有字符串操作,你需要一个变量来接收你处理后的字符串。 如: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日,第二次修改,加入思维导图 |
CopyRight 2018-2019 实验室设备网 版权所有 |