自学python第九章-字符串 和字符串的驻留

#字符串的驻留机制
#python的驻留机制对相同的字符串只保留一份拷贝,
# 后续创建相同字符串时,不会开辟新的内存地址看,而是把该字符串的地址赋给新创建的变量
#驻留机制的级中情况(交互模式)
#1.字符串的长度为0或者1时
#2.符合标识符的字符串
#3.字符串只在编译时进行驻留,而非运行
#4.[-5,256]之间的整数数字
s1='abc%'
s2='abc%'
print(s1 is s2)
#字符串的查找方式
s='hello,hello'
print(s.index('lo')) #index()查找字符串中第一个出现的位置.元素没有会报错
print(s.find('lo'))#find()查找字符串中第一次出现的位置,元素没有会输出-1
print(s.rindex('lo')) #rindex()查找字符串中最后一次出现的位置,元素没有会报错
print(s.rfind('lo'))#find()查找字符串中最后次出现的位置,元素没有会输出-1
#字符串中的大小学转换
#upper()将字符串中所有的元素都转换成大写
#lower()将字符串中所有的元素都转换成小写
#swapcase()将字符串中所有的小写转换为大写,将所有的大写都转换为小写
#capitalize()将第一个转化为大写,将其他的转化为小写
#title()把每个单词的第一个字符转化为大写,把单词其他都转化小写
ss='Hello,Python'
a=ss.upper()#转成大写后,会产生一个新的字符串对象
print(s,id(s))
print(a,id(a))
print(s.lower(),id(s.lower())) #转化小写之后也会有新的对象
print(s.lower() is s) #转换之后地址变了,但是值是相等的
print(s.lower()==s)
print(ss.swapcase())
print(ss.title())
#字符串的对齐操作
#center()居中对齐
#ljust()左对齐
#rjust()右对齐
#zfill()右对齐,左侧用0填充
print(ss.center(20,'%'))#居中,设置宽度为20,填充符号为%
print(ss.ljust(20,'%'))#左对齐,设置宽度为20,填充符号为%
print(ss.ljust(4,'%'))#如果设置的宽度小于字符串的长度,则返回原始字符串,如果填充符号不写则是空格
print(ss.ljust(4))#如果设置的宽度小于字符串的长度,则返回原始字符串,如果填充符号不写则是空格
print(ss.rjust(20,'%'))#,右对齐,如果设置的宽度小于字符串的长度,则返回原始字符串,如果填充符号不写则是空格
print('-8910'.zfill(8))#0加在数字的前面
#字符串的分割
a='hello world python'
lst=a.split()#在左面分割,以空格为分割符号,结果是列表的形式
print(lst)
a2='hello|world|python'
lst2=a2.split(sep='|')#用内置参数sep()来设置分隔符是什么
print(lst2)
print(a2.split(sep='|',maxsplit=1))#maxsplit()是这是最大分割个数的函数
print(a2.rsplit(sep='|'))#从右面分割
print(a2.rsplit(sep='|',maxsplit=1))#从右面最大分割1次
#字符串判断的方法
#isidentifier():判断指定的字符串是不是合法的标识符
#isspace():判断质地的那个的字符串是否全部由空格字符组成(回车,换行,水平制表位)
#isalpha():判断字符串是否全部由字母组成
#isdecimal():判断指定字符串是否全部由十进制的数字组成
#isnumeric():判断字符串是否全部由数字组成
#isalnum():判断指定字符串是否全部由字母和数字组成
ss='Hello,Python'
print(ss.isidentifier())#判断是合格的标识符吗(字母数字下划线)
print(ss.isalpha())
print('19'.isnumeric())
print('219','ni12'.isnumeric())
print('12'.isalnum())
#字符串的操作的
#字符串的替换:replace():第一个参数指定被替换的字串
#字符串的合并:join():将列表或者元组中的字符串合并成一个字符串
ss='Hello,Python'
print(ss.replace('Python','java'))#用Java替换python
ss='Hello,Python,Python,Python'
print(ss.replace('Python','java',2))#替换两次java,2是最大的替换次数
lst3=['hello','java','python','world']
print('|'.join(lst3)) #用|来连接列表中的元素
print(''.join(lst3))#用空来连接元素
t=('hello','java','python','world') #元组的合并
print(''.join(t))
print('*'.join('Python'))#字符串的连接
#字符串的比较
print('apple'>'app')
print('apple'>'banana')
print(ord('a'),ord('b')) #输出a和b的原始值,相当于Aclls码值
print(ord('赵'))
print(chr(98),chr(97))   #输出原始值对应的字符
print(chr(36213))
#字符串的切片操作
s='hello,Python'
s1=s[:5] #
s2=s[6:]
s3='!'
print(s1)
print(s2)
newst=s1+s3+s2
print(newst)
print(id(s1))
print(s[1:5:2])#从一切到5(不包含5)步长为2
print(s[-6::1])
#格式化字符串
#%占位符
name='张三'
age=20
print("我叫%s,今年%d岁"%(name,age))#中间的%是固定符号
#占位符的第二种方法-{}
print('我叫{0},今年{1}岁'.format(name,age))
#占位符的第三种方法-f-string
print(f'我叫{name},今年{age}岁')
print('%d'% 99) #
print('%10d' %99)#10为宽度的大小
print('%10.3f'% 3.1415965) #.3为保留小数点后三位小数
print('{0:.3}'.format(3.1415926))#.3是保留三位数字
print('{:10.3f}'.format(3.1415926))#.3是保留三位小数,10是宽度
#字符串的编码
w='天涯共此时'
print(w.encode(encoding='GBK'))#在GBK这种编码格式中 一个中文占两个字节,输出的b是二进制的意思
print(w.encode(encoding='UTF-8'))#在UTF-8这种编码格式中 一个中文占两个字节,
#字符串的解码
#byte代表就是一个二进制数据(字节类型的数据)
byte=w.encode(encoding='GBK') #编码
print(byte.decode(encoding='GBK'))#解码








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值