目录
1.1 字符串的常用操作
查询
- index()
- 查找子串substr第一次出现的位置,如果查找的子串不存在时,则抛出ValueError
- rindex()
- 查找子串substr最后一次出现的位置,如果查找的子串不存在时,则抛出ValueError
- *find()
- 查找子串substr第一次出现的位置,如果查找的子串不存在时,则返回-1
- *rfind()
- 查找子串substr最后一次出现的位置,如果查找的子串不存在时,则返回-1
# -*- coding:utf-8 -*-
# @Author :Persistent.J
s = 'hello,hello'
print(s.index('lo'))
print(s.find('lo'))
print(s.rindex('lo'))
print(s.rfind('lo'))
'''
3
3
9
9
'''
大小写转换
- upper()
- 将字符串中的字符都转成大写字母
- lower()
- 将字符串中的字符都转成小写字母
- swapcase()
- 把字符串中所有大写字母转成小写字母,把所有小写字母都转成大写字母
- capitalize()
- 把第一个字符转换为大写,把其余字符转换为小写
- title()
- 把每个单词的第一个字符转换为大写,把每个单词的剩余字母转换为小写
# -*- coding:utf-8 -*-
# @Author :Persistent.J
s = 'Hello py'
print(s.upper()) # HELLO PY
print(s.lower()) # hello py
print(s.title()) # Hello Py
print(s.swapcase()) # hELLO PY
print(s.capitalize()) # Hello py
内容对齐
- center()
- ljust()
- rjust()
- zfill()
劈分
- split()
- 从字符串的左边开始劈分,默认的劈分字符时空格字符串,返回的值都是一个列表
- 以通过参数sep指定劈分字符串是的劈分符
- 通过参数maxsplit指定劈分字符串时的最大劈分次数,在经过最大次劈分之后,剩余的子串会单独做为一部分
- rsplit()
- 从字符串的右边开始劈分,默认的劈分字符时空格字符串,返回的值都是一个列表
- 以通过参数sep指定劈分字符串是的劈分符
- 通过参数maxsplit指定劈分字符串时的最大劈分次数,在经过最大次劈分之后,剩余的子串会单独做为一部分
# -*- coding:utf-8 -*-
# @Author :Persistent.J
s = 'a b c d e f '
print(s.split())
# ['a', 'b', 'c', 'd', 'e', 'f']
s = 'a|b|c|d|e|f '
print(s.split(sep='|'))
# ['a', 'b', 'c', 'd', 'e', 'f']
s = 'a|b|c|d|e|f '
print(s.split(sep='|', maxsplit=2))
# ['a', 'b', 'c|d|e|f ']
-------------------------------------------------------------------------------------------
s = 'a b c d e f '
print(s.rsplit())
# ['a', 'b', 'c', 'd', 'e', 'f']
s = 'a|b|c|d|e|f '
print(s.rsplit(sep='|'))
# ['a', 'b', 'c', 'd', 'e', 'f']
s = 'a|b|c|d|e|f '
print(s.rsplit(sep='|', maxsplit=2))
# ['a|b|c|d', 'e', 'f ']
判断字符串
- isidentifier()
- 判断指定的字符串是不是合法的标识符
- isspace()
- 判断指定的字符串是否全部由空白字符组成(回车、换行、水平制表符)
- isalpha()
- 判断指定的字符串是否全部由字母组成
- isdecimal()
- 判断指定的字符串是否全部由十进制的数字组成
- isnumeric()
- 判断指定的字符串是否全部由数字组成
- isalnum()
- 判断指定的字符串是否全部由字母和数字组成
替换&合并
- replace(被替换的子串, 指定替换子串的字符串, 指定最大替换次数)
- 字符串的替换
- join()
- 字符串的合并--将列表或元组的字符串合并成一个字符串
# -*- coding:utf-8 -*-
# @Author :Persistent.J
s = 'hello pycharm'
print(s.replace('pycharm', 'c')) # hello c
s1 = 'hello pycharm pycharm pycharm D'
print(s1.replace('pycharm', 'c', 2)) # hello c c pycharm D
s2 = ['hello pycharm pycharm pycharm D']
print(''.join(s2)) # hello pycharm pycharm pycharm D
s3 = ['hello', 'pycharm', 'pycharm', 'pycharm', 'D']
print('|'.join(s3)) # hello|pycharm|pycharm|pycharm|D
tup = ('cc', 'c')
print('-'.join(tup)) # cc-c
print('+'.join('abc')) # a+b+c
比较(ord();chr())
- <=
- <
- >=
- >
- ==
- !=
切片 [start : end : step]
# -*- coding:utf-8 -*-
# @Author :Persistent.J
a = 'good morning'
print(a[2:1:1])
print(a[1:4:1])
print(a[2:3:1])
print(a[1:6:1])
print(a[0:5:1])
print(a[3:4:1])
'''
ood
o
ood m
good
d
'''
格式化字符串
- % 做占位符----%
- { } 做占位符----formate()
# -*- coding:utf-8 -*-
# @Author :Persistent.J
name = 'Q'
num = 88
print('名称{0},数量{1}'.format(name, num))
print('名称%s,数量%d' % (name, num))
print(f'名称{name},数量{num}')
'''
名称Q,数量88
名称Q,数量88
名称Q,数量88
'''
编码转换
-
编码 将字符串转换为二进制数据(bytes)
-
gbk 一个中文占两个字节
-
utf-8一个中文占三个字节
-
-
解码 将bytes类型的数据转换成字符串类型
-
print(byte.decode(encoding = 'gbk'))
-