欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python中字符串的常见操作,这一篇足矣

程序员文章站 2022-05-24 09:49:11
...

想要真正了解有关字符串的作用吗?那就继续往下面看下去吧
一个方法一个代码帮你了解的明明白白,look!look! look!
由于字符串是不可变数据类型,so自身没有增删改的操作,只会返回一个新的对象。切记,切记,切记!!!

字符编码encode,decode

a='我好帅呀'
byte=a.encode(encoding='utf8')#b'\xe6\x88\x91\xe5\xa5\xbd\xe5\xb8\x85\xe5\x91\x80'
b=byte.decode(encoding='utf8')#编码与解码的encoding必须一样
print(b)

字符串中字符的替换

str_1='hello,python'
str-2=str_1.replace('h','w',1)#将h->w,次数为1
print(str_1)#输出  hello,python
print(str_2)#输出  wello,python

字符串的大小写转换

str_1='HELLO,python'
str_2=str_1.upper()#HELLO,PYTHON ,全为大写 
str_3=str_1.lower()#hello,python,全为小写
str_4=str_1.title()#Hello,Python,每个单词的首字母大写'xie
str_5=str_1.swapcase()#hello,PYTHON,大写改为小写,小写改为大写
str_6=str_1.capitalize()#Hello,python,只有第一个字母大写
print(str_2,str_3,str_4,str_5,str_6)

判断字符串由什么组成,所以返回 bool(true or false)

str.isdigit()#判断字符串是否全由数字组成
str.isalpha()#判断字符串是否由字母和中文组成
str.isalnum()#判断字符串是否是否由字母和数字组成
str.isspace()#判断字符串是否由  空白字符(\n,\t,\r, )    组成
str.isidentifier()#判断字符串是否为标识符
str.isdecimal()#判断字符串是否数字全为十进制的

字符串的合并

a=['h','e','l','l','o']
str_1=''.join(a)#join函数的参数为列表或元组
print(str_1)#hello

字符串中的查找

str_1='hello,hello'
str_2='lo'
a=str_1.index(str_2)#从左开始查找,返回索引
b=str_1.rindex(str_2)#从右开始查找,返回索引
print(a,b)#3,9
str_1='hello,hello'
str_2='lo'
a=str_1.find(str_2)#从左开始查找,返回索引
b=str_1.rfind(str_2)#从右开始查找,返回索引
print(a,b)#3,9

那find与index的区别呢?就是如果str_2在str_1中没有找到的话,index(rindex)方法返回ValueError: substring not found,而find(rfind)返回-1

字符串切片

#切片左闭右开
str_1='bbjsdjbavhhbhbbjnnkmkj'
str_2=str_1[:3]#0,1,2
str_3=str_1[1:7]#1,2,3,4,5,6
str_4=str_1[1:]#从索引1到字符串结束
print(str_2)#bbj
print(str_3)#bjsdjb
print(str_4)#bjsdjbavhhbhbbjnnkmkj

去字符串头尾的空白字符

a='   sdsdjjj   '
b=a.strip()#去除头尾空白字符
c=a.lstrip()#去除左边的空白字符
d=a.rstrip()#去除右边的空白字符
print(b)
print(c)
print(d)

分割存为 列表

str_1='hello,world,python'
str_2=str_1.split(',',1)#第一个参数为字符串中的字符,第二个参数为分割次数(默认为全分割
str_3=str_1.split('l')
print(str_1)#hello,world,python
print(str_2#['hello,world,python']
print(str_3)#['he', '', 'o,wor', 'd,python']

查找字符在字符串中出现的次数

str_1='hdijicjdsjssjdew'
con=str_1.count('j')
print(con)

字符串之间的比较(>,=>,<,<=,==,!=)这是比较值,is比较的是id,但都返回bool

a,b,d='adcd','abdc','adcd'
print(a==b)#false
print(a is d)#true

字符串的对齐方式

str_1='abcd'
a=str_1.center(8,'*')#第一个参数表示字符长度,第二参数表示填充字符(默认填充空格)
b=str_1.ljust(9,'@')#第一个参数表示字符长度,第二参数表示填充字符(默认填充空格)
c=str_1.rjust(10,'%')#第一个参数表示字符长度,第二参数表示填充字符(默认填充空格)
d=str_1.zfill(10)#参数表示字符长度,填充0
e=str_1.rjust(10)#参数表示字符长度,没有指示填充字符,则为填充空格
f=str_1.center(3,'*')#指定字符长度小于实际长度,则返回原字符串
print(a)
print(b)
print(c)
print(d)
print(e)
print(f)

最后我想问个问题

第一个问题

a=‘123’
b=a
a=‘456’
b=?

第二个问题

a=(‘a’,‘b’,[‘c’,‘d’])
b=(a)
a[2][0]=‘e’
b=?

第一个问题中a变了,但b没有变
第二个问题中a变了,但b也变了,这是为什么吗?