字符串的相关操作

#内存地址相同
a=‘python’
b=“python”
c=’’‘python’’’
print(a,id(a))#python 2513522467888
print(b,id(b))#python 2513522467888
print(c,id©)#python 2513522467888

’’‘字符串的驻留机制(交互模式)–结果为cmd编译结果’’'
#1:字符串的长度为0或1时
#2:符合标识符的字符串(符合标识符的字符串:字母,数字,下划线)
a=‘abc%’
b=‘abc%’
print(a == b)#True
print(a is b)#False
#3:字符串只在编译时进行驻留,而非运行时
a=‘abc’
b=‘a’+‘bc’
c=’’.join(‘a’+‘bc’)
print(a is b)#True
print(a is c)#False
#4:[-5到256]之间的整数数字
a=-5
b=-5
print(a is b)#True
a=-6
b=-6
print(a is b)#False

’’‘sys中的intern方法强制2个字符串指向同一个对象’’'
a=‘abc%’
b=‘abc%’
print(a is b)#False
import sys
a=sys.intern(b)
print(a is b)#True

’’‘pytham对字符串进行的优化处理’’'

’’‘字符串的查询操作’’'

a1=‘hello,hello’
#print(a1.index(‘k’))#报异常,ValueError: substring not found
print(a1.find(‘k’))#没报错,输出-1
#index(),find()字串第一次出现的位置
#print(a1.rindex(‘k’))#报异常,ValueError: substring not found
print(a1.rfind(‘k’))#没报错,输出-1
#rindex(),rfind()字串最后一次出现的位置

*’’‘字符串的常用操作’’’

’’‘大小写转化’’'

a2=‘HEllo,PYthon’
print(a2.upper())#输出:HELLO,PYTHON,字母全大写
print(a2.lower())#输出:hello,python,字母全小写
print(a2.swapcase())#输出:heLLO,pyTHON,大写变小写,小写变大写
print(a2.title())#输出:Hello,Python,每个单词的第一个大写,其他小写
#由于字符串时不可变序列,所以以上的转换产生的对象都是新对象,与原a2字符串的地址不同
‘’‘内容对其的方法’’’
print(a2.center(21,’’))#输出:*HEllo,PYthon,居中对齐,共设置21个字符,不够则左右填充’
print(a2.ljust(21,’’))#输出:HEllo,PYthon********,左对齐,不够填充’
print(a2.rjust(21,’
’))#输出:*********HEllo,PYthon,右对齐,不够填充
print(a2.zfill(21))#输出:000000000HEllo,PYthon,右对齐.不够用0进行填充

’’‘字符串的分割’’'

s3=‘hello word python’
print(s3.split())#输出:[‘hello’, ‘word’, ‘python’]
#默认以空格进行分割,返回的是列表
a4=‘hello\word\python’
print(a4.split(sep=’\’))#输出:[‘hello’, ‘word’, ‘python’]
#sep指定元素进行分割
print(a4.split(sep=’\’,maxsplit=1))#输出:[‘hello’, ‘word\python’]
#maxsplit指定分割次数,分割次数之后的分为一组
print(a4.rsplit(sep=’\’,maxsplit=1))#输出:[‘hello\word’, ‘python’]
#rsplit从右边进行分割

‘’‘字符串的判断’’’

a5=‘hello,word’
print(a5.isidentifier())#输出:False,字符串内有’,’,错
print(‘张三’.isidentifier())#True
#isidentifier()判断是否是合法的字符串
print(’\t’.isspace())#输出:True
#isspace()判断字符串是否由空白字符组成(水平制表符,回车,换行)
print(a5.isalpha())#输出:False
print(‘张三’.isalpha())#输出:True
#isalpha()判断字符串是否全由字母组成
print(‘123565’.isdecimal())#输出:True
print(‘一12三’.isdecimal())#输出:False
print(‘ⅡⅢⅣⅤ’.isdecimal())#输出:False
#isdecimal()判断字符串是否全由十进制的字母组成
print(‘123565’.isnumeric())#输出:True
print(‘一12三’.isnumeric())#输出:True
print(‘ⅡⅢⅣⅤ’.isnumeric())#输出:True
#isnumeric()判断字符串是否全由数字组成
print(‘123asd三四ⅤⅥ张三’.isalnum())#输出:True
#isalnum()判断字符串是否全由数字和字母组成

‘’‘字符串的替换,合并’’’

a6=‘hello word python python python’
print(a6.replace(‘python’,‘C++’))#输出:hello word C++ C++ C++
print(a6.replace(‘python’,‘C++’,2))#输出:hello word C++ C++ python
#replace()第一个参数指定被替换的子串,第二个参数指定替换子串的字符串,第三参数指定最大的替换次数
lst=[‘hello’,‘word’,‘python’]
print(’’.join(lst))#输出:hellowordpython
print(’|’.join(lst))#输出:hello|word|python
t=(‘hello’,‘word’,‘python’)
print(’’.join(t))#输出:hellowordpython
print(’’.join(‘python’))#输出:python
#join()将列表或元组中的字符串合并成一个字符串

‘’‘字符穿的比较操作’’’

print(ord(‘杨’))#输出:26472
#ord()输出的是元素的原始值
print(chr(26472))#输出:杨
#chr()根据原始值输出元素
print(‘abcd’>‘bcd’)#输出:False
‘’‘因为字符串的比较大小是一个个比较的,先比较a和b的大小,a的原始值是97,b的原始值是98,所以a>b是False
另外’==‘比较的是元素的值,‘is’比较的是元素的id’’’

‘’‘字符串的切片操作(每次切片都将产生新的地址)’’’

a7=‘hello word python’
a8=a7[:10]
print(a8)#输出:hello word
a9=a7[11:]
print(a9)#输出:python
a10=’ ! ’
a11=a8+a10+a9
print(a11)#输出:hello word ! python
a12=a8+’ * '+a9
print(a12)#输出:hello word * python

‘’‘格式化字符串’’’

’’‘使用%’’'
name=‘张三’
age=20
print(‘我叫%s,今年%d’ % (name,age))#输出:我叫张三,今年20

’’‘使用{}’’'
print(‘我叫{0},今年{1},我真的叫{0}’.format(name,age))#输出:我叫张三,今年20,我真的叫张三
#format()括号里第一个值是{0},第二个值是{1}

’’‘使用f-string’’'
print(f’我叫{name},今年{age},我真的叫{name}’)#输出:我叫张三,今年20,我真的叫张三
#字符串前面加f代表格式化字符串

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值