Python中字符串的相关操作

Python中字符串

一:字符串的驻留机制

二:字符串的常用操作

三:字符串的比较

四:字符串的切片操作

五:格式化字符串

六:字符串的编码转换

一:字符串的驻留机制

仅保留一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,Python中的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量。

二:字符串的常用操作

①:字符串的查询操作

s='hello,hello'
print(s.index('lo'))
print(s.find('lo'))
print(s.rindex('lo'))
print(s.rfind('lo'))

Index:查找字串第一次出现的位置,不出现则出ValueError

rindex:查找最后一次出现的位置,也是查找不到出ValueError

Find:查找第一次出现的位置,如果不存在,返回-1

Rfind:查找最后一次出现的位置,如果不存在,返回-1

②:字符串的大小写转换操作

s='hello,python'
a=s.upper()
print(a,id(a))
print(s,id(s))
b=s.lower()
print(b,id(b))
print(s,id(s))
print(b==s)
print(b is s)
s2='hello,Python'
print(s2.swapcase())
print(s2.title())

upper():所有转成大写

lower():所有转成小写

swapace():大写变小写,小写变大写

title():把每个单词的第一个字符转换成大写,剩余的转换成小写。

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

Ⅰ:center():居中对齐

s='hello,Python'
print(s.center(20,'*'))

目测s有10多个字母,给一个20的长度,其余位置填充*,把s居中了。

Ⅱ:左右对齐

左对齐:ljust()

s='hello,Python'
print(s.ljust(20,'*'))

右对齐:rhust()

s='hello,Python'
print(s.rjust(20,'*'))

Ⅲ:右对齐,其余位置补0

zfill():

s='hello,Python'
print(s.zfill(20))

④:字符串的分割

Ⅰ:split()从字符串的左边开始劈分,默认的劈分字符是空格字符串,返回的值是一个列表,通过sep指定劈分字符串,通过maxsplit指定劈分字符串时的最大劈分次数。

Ⅱ:rsplit()从字符串的右边开始劈分,默认的劈分字符是空格字符串,返回的值是一个列表,通过sep指定劈分字符串,通过maxsplit指定劈分字符串时的最大劈分次数。

s='hello world Python'
lst=s.split()
print(list)
s1='hello|world|Python'
print(s1.split(sep='|'))
print(s1.split(sep='|',maxsplit=1))
print('-------------------')
#rsplit()从右侧开始劈分
print(s.rsplit())
print(s1.rsplit('|'))
print(s1.rsplit(sep='|',maxsplit=1))

⑤:判断字符串的方法

isidentifier():判断是不是合法的标识符

isspace():判断是否全部由空白字符组成

isalpha():判断是否全部由字母组成

isdecimal():判断是否全部由十进制的数字组成

isnumeric():判断是否全部由数字组成

isalnum():判断是否全部由字母和数字组成

s='hello,Python'
print('1.',s.isidentifier() )#False
print('2.','hello'.isidentifier() )#True
print('4.','张三_123'.isidentifier() )#True

(随便举几个哈)

⑥:字符串的替换

replace()

s='hello,Python'
print(s.replace('Python','Jave'))
s1='hello,Python,Python,Python'
print(s1.replace('Python','Java',2))

第一个是将Python替换成Java

第二个是将前两个Python替换成Java

⑦:字符串的增加

t=('hello','Java','Python')
print('*',join(t))

三:字符串的比较

常见的><=

print('apple'>'app')#True
print('apple'>'banana')#False
print(ord('a'),ord('b'))

四:字符串的切片操作

不具备增删改的操作

切片将产生新的对象

s='hello,Python'
s1=s[:5]
s2=s[6:]
s3='!'
newstr=s1+s2+s3
print(s1)
print(s2)
print(newstr)

将会产生hello

Python和hello,Python!

还可以选择切片

s='hello,Python'
print(s[1:5:1])

ello

五:格式化字符串

按一定方式输出

name='张三'
age=20
print('我叫%s,今年%d' % (name,age))

输出为我叫张三,今年20岁

还有其他两种

name='张三'
age=20
print('我叫%s,今年%d' % (name,age))
print('我叫{0},今年{1}'.format(name,age))
print(f'我叫{name},今年{age}')

六:字符串的编码编码转换

编码:

s='天涯共此时'
print(s.encode(encoding='GBK'))
print(s.encode(encoding='UTF-8'))

在第一种编码格中,一个中文占两个字节,第二种编码格中,一个中文占三个字节

结果为:

b'\xcc\xec\xd1\xc4\xb9\xb2\xb4\xcb\xca\xb1'

b'\xe5\xa4\xa9\xe6\xb6\xaf\xe5\x85\xb1\xe6\xad\xa4\xe6\x97\xb6'

解码:

s='天涯共此时'
byte=s.encode(encoding='GBK')
print(byte.decode(encoding='GBK'))
byte=s.encode(encoding='UTF-8')
print(byte.decode(encoding='UTF-8'))

解出来就是天涯共此时

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值