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,否则False
str1 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() # 去除左右空格