字符串的常用操作:
字符串的查询操作的方法:
index():查找子串substr第一次出现的位置,如果查找的子串不存在时,则抛出ValueError;
rindex():查找子串substr最后一次出现的位置,如果查找的子串不存在时,则抛出ValueError;
find():查找子串substr第一次出现的位置,如果查找的子串不存在时,则返回-1;
rfind():查找子串substr最后一次出现的位置,如果查找的子串不存在时,则返回-1
字符串的大小写转换操作的方法: 转换之后会产生一个新的字符串对象
upper():把字符串中的所有字符都转成大写字母
lower():把字符串中所有字符都转成小写字母
swapcase():把字符串中所有大写字母转成小写字母,把所有小写字母都转成大写字母
capitalize():把第一个字符转换为大写,其余字符转换为小写
title:把每个单词的第一个字符转换成大写,把每个单词的剩余字符转换为小写
字符串内容对齐操作的方法
center():剧中对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符
ljust():左对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符
rjust():右对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符
zfill():右对齐,左边用0填充,该方法只接收一个参数,用于指定字符串的宽度,如果指定的宽度小于等于字符串的长度,返回字符串本身
字符串劈分(分隔)操作的方法
split():
1.从字符串的左边开始劈分,默认的劈分字符是空格字符串,返回的值都是一个列表
2.以通过参数sep指定劈分字符串的劈分符
3.通过参数maxsplit指定劈分字符串时的最大劈分次数,在经过最大劈分之后,剩余字符串会单独作为一部分
rsplit():
1.从字符串的右边开始劈分,默认的劈分字符是空格字符串,返回的值都是一个列表
2.以通过参数sep指定劈分字符串的劈分符
3.通过参数maxsplit指定劈分字符串时的最大劈分次数,在经过最大劈分之后,剩余字符串会单独作为一部分
判断字符串操作的方法
isidentifier():判断指定的字符串是不是合法的标识符
isspace():判断指定的字符串是否全部由空白字符组成(回车、换行、水平制表符)
isalpha():判断指定的字符串是否全部由字母组成
isdecimal():判断指定字符串是否全部由十进制组成
isnumeric():判断指定的字符串是否全部由数字组成
isalnum():判断指定字符串是否全部由字母和数字组成
字符串操作的其它方法
replace():第一个参数指定被替换的子串,第二个参数指定替换子串的字符串,该方法返回替换后得到的字符串,替换前的字符串不发生变换,调用该方法时可以通过第三个参数指定最大替换次数
join():将列表或元组中的字符串合并成一个字符串
字符串的比较操作:
运算符:>,>=,<,<=,==,!=
比较规则:首先比较两个字符串的第一个字符,如果相等则继续比较下一个字符,依次比较下去,
直到两个字符串中的字符不相等时,其比较结果就是两个字符串的比较结果,两个字符串中的所有后续字符不再被比较
比较原理:两个字符进行比较时,比较的是其ordinal value(原始值,调用内置函数ord可以得到指定字符的原始值。
与内置函数ord对应的内置函数chr,调用内置chr时指定ordinal value 可以得到其对应的字符
字符串的切片操作:
字符串是不可变类型,不具备增删改等操作,切片操作将产生新的对象 s[start:stop:step] step可以不写,默认步长为1
步长为负数(-1),默认从字符串的最后一个元素开始,到字符串的第一个元素结束
开始start为负数(-6),从索引为-6开始,到字符串的最后一个元素结束
格式化字符串:
格式化字符串的两种方式:
1.%作占位符
%s--》字符串 %i 或 %d--》整数 %f--》浮点数
格式为: '我叫%s,今年%d岁' % (name, age) %--》固定符号
2.{}作占位符
格式:'我的名字叫:{0},今年{1}岁了,我真的叫:{0}'.format(name, age)
3.f-string
格式: f'我叫{name},今年{age}岁了!' 直接向{}加入参数名 在格式化的字符串前加个f
“”“字符串的编码转换
编码:将字符串转换为二进制数据
解码:将bytes类型的数据转换成字符串类型
“””
s = ‘天涯共此时’
print(s.encode(encoding=‘GBK’)) # 在GBK这种编码格式中 一个中文站两个字节
print(s.encode(encoding=‘UTF-8’)) # 在UTF-8这种编码格式中,一个中文占三个字节
byte = s.encode(encoding=‘GBK’)
print(byte.decode(encoding=‘GBK’))
byte = s.encode(encoding=‘UTF-8’)
print(byte.decode(encoding=‘Utf-8’))