字符串的常用操作

字符串的常用操作

字符串的查询操作的方法

功能方法名称作用
查询方法index()查找子串substr第一次出现的位置,如果查找的子串不存在时,则抛出ValueError
rindex()查找子串substr最后一次出现的位置,如果查找的字串不存在时,则抛出ValueError
find()查找子串substr第一次出现的位置,如果查找的子串不存在时,则返回-1
rfind()查找子串substr最后一次出现的位置,如果查找的子串不存在时,则返回-1
# 字符串的查询操作
a = 'hello,hello'
print(a.index('lo'))
print(a.find('lo'))
print(a.rindex('lo'))
print(a.rfind('lo'))


3
3
9
9


-11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1   逆向索引
 h   e   l  l  o  ,  h  e  l  l  o
 0   1   2  3  4  5  6  7  8  9  10  正向索引
 
查询'lo'的位置时显示的位置输出时显示的是正向索引
查询'lo'第一次出现的位置索引为3;最后一次出现的位置索引为9。

由于index()和rindex()查询的位置不存在时会抛出ValueError,而find()和rfind()则会显示是-1;因此推荐使用find()和rfind()查询操作

字符串大小写转换操作的方法

功能方法名称作用
大小写转换upper()把字符串中所有字符都转成大写字母
lower()把字符串中所有字符都转成小写字母
swapcase()把字符串所有大写字母转换成小写字母,把所有小写字母都转换成大写字母
capitalize把第一个字符转换为大写,把其余字符转换为小写
title把每个单词的第一个字符转换为大写,把每个单词的剩余字符转换为小写
s = 'hello,python'  # 由于字符串的不可变类型,转成大写之后会产生一个新的字符串对象
a = s.upper()
print(s, id(s))
print(a, id(a))
print(s.lower(), id(s.lower()))  # 转换成小写后也会产生新的字符串对象

b = s.lower()
print(s == b)
print(s is b)  # 值相同,id不同


s2 = 'hello,Python'
print(s2.swapcase(), s2.capitalize(), s2.title())


hello,python 1900513952752
HELLO,PYTHON 1900518096112
hello,python 1900518143664
True
False
HELLO,pYTHON Hello,python Hello,Python

字符串内容对齐操作的方法

功能方法名称作用
字符串对齐center()居中对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符串
ljust()左对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符串
rjust()右对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符串
zfill()右对齐,左边用0填充,该方法只接收一个参数,用于指定字符串的宽度,如果指定的宽度小于等于字符串的长度,返回字符串本身
s = 'hello,python'
# 居中对齐
print(s.center(20, '*'))


****hello,python****


# 左对齐
print(s.ljust(20, '*'))  # '*'表示填充符,如果不写填充符,则默认空格键
print(s.ljust(10))  # 设置宽度小于实际宽度则返回原字符串


hello,python********
hello,python


# 右对齐
print(s.rjust(20, '*'))
print(s.rjust(20))
print(s.rjust(10))  # 设置宽度小于实际宽度则返回原字符串


********hello,python
        hello,python
hello,python


# 右对齐,使用0进行填充
print(s.zfill(20))
print(s.zfill(10))
print('-8910'.zfill(8))  # 符号也表示一个位置,0填充再符号之后


00000000hello,python
hello,python
-0008910

字符串劈分操作的方法

功能方法名称作用
字符串的劈分split()从字符串的左边开始劈分,默认的劈分字符是空格字符串,返回的值都是一个列表
以通过参数sep指定劈分字符串的劈分符
通过参数maxsplit指定劈分字符串的最大劈分次数,在经过最大次劈分之后,剩余的子串会单独成为一部分
rsplit()从字符串的右边开始劈分,默认的劈分字符是空格字符串,返回的值都是一个列表
以通过参数sep指定劈分字符串的劈分符
通过参数maxsolit指定劈分字符串的最大劈分次数,在经过最大次劈分之后,剩余的子串会单独成为一部分
# split()  左边开始劈分
a = 'hello world python'
lst = a.split()
print(lst)

['hello', 'world', 'python']

a1 = 'hello|world|python'
print(a1.split())
print(a1.split(sep='|'))
print(a1.split(sep='|', maxsplit=1))

['hello|world|python']
['hello', 'world', 'python']
['hello', 'world|python']


# rsplit()   右边开始劈分
print(a.rsplit())
print(a1.rsplit(sep='|'))
print(a1.rsplit(sep='|', maxsplit=1))

['hello', 'world', 'python']
['hello', 'world', 'python']
['hello|world', 'python']

判断字符串操作的方法

功能方法名称作用
判断字符串的方法isidentifier()判断指定字符串是不是合法的标识符
isspace()判断指定的字符串是否全部由空白字符组成(回车、换行、水平制表符)
isalpha()判断指定的字符串是否全部由字母组成
isdecimal()判断指定字符串是否全部由十进制的数字组成
isnumeric()判断指定的字符串是否全部由数字组成
isalnum()判断指定字符串是否全部由字母和数字组成
# isidentifier()
a = 'hello python'
print(a.isidentifier())  # 不是合法标识符,合法标识符为字母、数字和下划线组成。
print('hello'.isidentifier())
print('张三_'.isidentifier())
print('张三_123'.isidentifier())
# 注意:汉字、日语假名、韩文都可以做标识符

False
True
True
True


# isspace()
print('\t'.isspace())

True


# isalpha()
print('abc'.isalpha())
print('张三'.isalpha())
print('张三1'.isalpha())

True
True
False


# isdecimal()
print('123'.isdecimal())
print('123四'.isdecimal())  # false
print('123'.isdecimal())

True
False
True


# isnumeric()
print('123'.isnumeric())
print('123四'.isnumeric())  # true,罗马数字也是数字

True
True


# isalnum()
print('abc12'.isalnum())
print('张三12'.isalnum())  # true
print('abc!'.isalnum())


True
True
False

字符串操作的替换与合并

功能方法名称作用
字符串替换replace()第一个参数是指定被替换的子串,第二个参数是指定替换子串的字符串,该方法返回替换后得到的字符串,替换前的字符串不发生改变,调用该方法时可以通过第3个参数指定最大替换次数
字符串的合并join()将列表或元组中的字符串合并成一个字符串
# replace()
s = 'hello, python'
print(s.replace('python', 'java'))
s = 'hello, python,python,python'
print(s.replace('python', 'java', 2))


hello, java
hello, java,java,python



# join()
lst = ['python', 'java', 'hello']
print('|'.join(lst))
print(' '.join(lst))
print('*'.join('python'))


python|java|hello
python java hello
p*y*t*h*o*n
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蛰伏GR

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值