Python入门 字符串处理(字符串连接\转义\字符串运算\字符串的多种引号区分\切片\常用函数) 您所在的位置:网站首页 python转义字符串函 Python入门 字符串处理(字符串连接\转义\字符串运算\字符串的多种引号区分\切片\常用函数)

Python入门 字符串处理(字符串连接\转义\字符串运算\字符串的多种引号区分\切片\常用函数)

2022-12-25 02:02| 来源: 网络整理| 查看: 265

字符串是 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 结果True

3、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 输出结果:good

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

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 实验室设备网 版权所有