字符串查询操作
功能 |
方法名称 |
作用 |
查询方法 |
index() |
查找子串substr第一次出现的位置,如果查找的子串不存在时,则抛出valueError |
查询方法 |
rindex() |
查找子串sunstr最后一次出现的位置,如果查找的子串不存在时,则抛出valueError |
查询方法 |
find() |
查找子串sunstr第一次出现的位置,如果查找的子串不存在时,返回-1 |
查询方法 |
rfind() |
查找子串sunstr最后·一次出现的位置,如果查找的子串不存在时,返回-1 |
s='hello,hello'
print(s.index('lo'))
print(s.rindex('lo'))
print(s.find('lo'))
print(s.rfind('lo'))
字符串的大小写转换操作的方法
功能 |
方法名称 |
作用 |
大小写转换 |
upper() |
把字符串中所有字符都转成大写字母 |
大小写转换 |
lower() |
把字符串中所有字符都转成小写字母 |
大小写转换 |
swapcase() |
把字符串中所有大写字母都转换成小写字母,把所有小写都转换成大写 |
大小写转换 |
capitalize() |
把第一个字符转换为大写,把其余字符转换为小写 |
大小写转换 |
title() |
把每个单词的第一个字符转换为大写,把每个单词的剩余字符转换为小写 |
字符串内容对齐操作的方法
功能 |
方法名称 |
作用 |
字符串对齐 |
center() |
居中对齐,第一个参数指定宽度,第2个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符串 |
字符串对齐 |
ljust() |
左对齐,第一个参数指定宽度,第2个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符串 |
字符串对齐 |
rjust() |
右对齐,第一个参数指定宽度,第2个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符串 |
字符串对齐 |
zfill() |
右对齐,左边用0填充,该方法只接受一个参数,用于指定字符串的宽度,如果指定的宽度小于等于字符串长度,返回字符串本身 |
s='hello,python'
'''居中对齐'''
print(s.center(20,'*'))
'''左对齐'''
print(s.ljust(20,'*'))
print(s.ljust(10))
print(s.ljust(20))
'''右对齐'''
print(s.rjust(20,'*'))
print(s.rjust(10))
'''右对齐,使用0填充'''
print(s.zfill(20))
字符串劈分操作的方法
功能 |
方法名称 |
作用 |
字符串的劈分 |
split() |
1.从字符串的左边开始劈分,默认劈分字符是空格字符串,返回的值都是一个列表 2.以通过参数sep指定劈分字符串是劈分符 3.通过参数maxsplit指定劈分字符串时最大劈分次数,在经过最大次劈分之后,剩余的子串会单独作为一部分 |
字符串的劈分 |
rsplit() |
1.从字符串的右边开始劈分,默认劈分的字符是空格字符串,返回的值都是一个列表 2.以通过参数sep指定劈分字符串是劈分符 3.通过参数maxsplit指定劈分字符串时最大劈分次数,在经过最大次劈分之后,剩余的子串会单独作为一部分 |
s='hello world python'
lst=s.split()
print(lst)
s1='hello|world|python'
print(s1.split(sep='|'))
print(s1.split(sep='|',maxsplit=1))
判断字符串操作的方法
功能 |
方法名称 |
作用 |
判断字符串的方法 |
isidentifier() |
判断指定的字符串是不是合法的标识符 |
判断字符串的方法 |
isspace() |
判断指定的字符串是否全部由空白字符组成(回车、换行、水平制表符) |
判断字符串的方法 |
isalpha() |
判断指定的字符串是否全部由字母组成 |
判断字符串的方法 |
isdecimal() |
判断指定字符串是否全部由十进制的数字组成 |
判断字符串的方法 |
isnumeric() |
判断指定的字符串是否全部由数字组成 |
判断字符串的方法 |
isalnum() |
判断指定字符串是否全部由字母和数字组成 |
s='hello,python'
print('1.',s.isidentifier())
print('2.','hello'.isidentifier())
print('3.','张三'.isidentifier())
print('4.','张三_123'.isidentifier())
print('5.','\t'.isspace())
print('6.','abc'.isalpha())
print('7.','张三'.isalpha())
print('8.','123'.isdecimal())
print('9.','123四'.isdecimal())
print('10.','123'.isnumeric())
print('11.','123四'.isnumeric())
print('12.','12a3'.isalnum())
字符串的替换与合并
功能 |
方法名称 |
作用 |
字符串的替换 |
replace |
第一个参数指定被替换的子串,第二个参数指定替换字串的字符串,该方法返回替换后得到的字符串,替换前的字符串不发生变化,调用该方法时可以通过第三个参数指定最大替换次数 |
字符串的合并 |
join |
将列表或元组中的字符串合并成一个字符串 |
s='hello,python'
print(s.replace('python','java'))
s1='hello,python,python,python'
print(s.replace('python','java',2)
lst=['hello','java','python']
print('|'.join(lst))
print(''.join(lst))
lst=('hello','java','python')
print(''.join(t))
print('*'.join('python'))
字符串的比较操作
- 运算符:>,<,>=,<=,==,!=
- 比较规则:首先比较两个字符串中的第一个字符,如果相等则继续比较第二个字符,依次比较下去,直到两个字符串中的字符不相等时,其比较结果就是两个字符串的比较结果,两个字符串中所有后续字符将不再被比较
- 比较原理:两个字符进行比较时,比较的是其ordinal value(原始值),调用内置函数ord可以得到指定字符的ordinal value。与内置函数ord对应的是内置函数chr,调用内置函数chr时指定ordinal value可以得到其对应的字符
print('apple'>'app')
print('apple'>'banana')
print(ord('a'),ord('b'))
print(chr(97),chr(98))
'''==与is的区别'''
字符串的切片操作
- 字符串是不可变类型
不具备增、删、改等操作
切片操作将产生新的对象
s='hello,world'
s1=s[:5]
s2=s[6:]
s3='!'
newStr=s1+s3+s2
print(newStr)
格式化字符串
格式化字符串的两种方式
- %作占位符
我的名字叫:%s,今年%d岁了
- { }作占位符
name='张三'
age=20
print('我叫%s,今年%d岁' % (name,age))
print('我叫{0},今年{1}岁'.format(name,age))
print(f'我叫{name},今年{age}岁')
print('%10d' % 99)
print('%.3f' % 3.1415926)
print('%10.3f' % 3.1415926)
print('hellohello ')
print('{0:.3}'.format(3.1415926))
print('{:.3f}'.format(3.1415926))
print('{:10.3f}'.format(3.1415926))
字符串的编码转换
s='天涯共此时'
print(s.encode(encoding='GBK'))
print(s.encode(encoding='UTF-8'))
byte=s.encode(encoding='GBK')
print(byte.decode(encoding='GBK'))