字符串是 Python 的基础数据类型。我们常用引号('或")来创建字符串,字符串在程序中是最常用的数据类型之一。
字符串的连接
连接字符串使用‘+
’号
# 加号连接很简单,两个字符串相加就可以
print('Hello'+' World!')
# 字符串连接整型数据时会报错,如下:
year = '2017'
month = 8
# 注意写出下面代码会报TypeError错误,month为整数型,需要str进行转换
print(year+month) # 会报错 TypeError错误数据类型不对
print(year+str(month)) # str 强制转换为字符串类型
Python字符串运算符
Python字符串运算常用的连接(+
)、是否存在(in
\ not in
)、原始字符串(r
/ R
)
是否存在(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
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’,不用对\ 加上 \ 了。
字符串的切片
字符串的切片看上去非常复杂,其实很简单,分为下面几种
首先理解,字符串中每个字符都分配一个数字索引,第一个索引是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?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的值没有被改变。