python中字符串的相关基础知识总结
最近在学习python,查缺补漏,发现之前自己差了太多的东西。如有雷同,纯属巧合
字符串(不可变)
字符串的驻留机制:(个人理解就是如果存在就不需要重新建,直接获取id 指向值,可能理解的不一定对)
(1)字符串长度为0或者1;
(2)符合标识字符的字符串;
(3)字符串只在编译时进行驻留;
a='abc'
b='ab'+'c'
c='ab'.join('c')#编译后执行
print(a is b)
print(a is c)
(4)[-4,256]之间的数字
字符串中常用的操作
1.查询操作
(1)index():从第一位开始查询,若查询的对象不存在,抛出ValueError
a='abc'
print(a.index('a'))
print(a.index('d'))
(2)rindex():从后面开始查询,若查询不到,抛出ValueError
a='abc'
print(a.rindex('a'))
print(a.rindex('d'))
(3)find():从第一位开始查找,若查找不存在,返回-1
a='abc'
print(a.find('a'))
print(a.find('d'))
(4)rfind():从后开始查找,若查找不存在,返回-1
a='abc'
print(a.rfind('a'))
print(a.rfind('d'))
注意:find()用的更加广泛,因为即使查不到也会返回-1,不会有异常。
2. 字符串大小写转换
(1)upper():把字符串中内容全部转换为大写
a='abc'
print(a.upper())
(2)lower():将字符串中全部内容转换为小写
a='abc'
print(a.lower())
(3)swapcase():字符串中大写的内容变为小写,小写的内容编成大写
a='aBc'
print(a.swapcase())
(4)capitalize():字符串首字母大写,其余均小写
a='abc'
print(a.capitalize())
(5)title():字符串中每个词首字母大写,其余小写
a='ABC,bcd,def'
print(a.title())
3. 字符串内容对齐
(1)center():字符串居中 第一个参数指定宽度,第二个参数是选择填充对象
a='abc'
print(a.center(9,'*'))
(2)ljust():字符串左对齐,也是两个参数,一个是宽度,一个是补充的东西,右侧补充的默认是空格,当然也可以人为指定
a='abc'
print(a.ljust(10,"*"))
(4)rjust():字符串右对齐,也是两个参数,一个是宽度,一个是补充的东西,默认补充空格
a='abc'
print(a.rjust(10,"*"))
(5)zfill():右对齐,参数是宽度,默认补充0
a='abc'
print(a.zfill(10))
- 字符串拆分
(1)split():从左开始拆分,第一个参数是拆分的标志,第二个参数是拆分次数,默认-1,拆完了之后是列表
a='abc|bcd|cdf'
print(a.split('|'))
a='abc|bcd|cdf'
print(a.split('|',maxsplit=1))
(2)rsplit():从后往前拆,与split原理相同
a='abc|bcd|cdf'
print(a.rsplit('|',maxsplit=1))
5. 判断字符串
(1)isidentifier():判断字符串是否为合法字符
a='abc'
print(a.isidentifier())
(2)isalpha():字符串是否由字母组成
a='abc'
print(a.isalpha())
(3)isspace():是否由空白组成,例如空格 回车 制表符等
a='abc'
print(a.isspace())
(4)isdecimal():是否由十进制数字组成
a='abc'
print(a.isdecimal())
(5)isnumeric():是否由数字组成
a='abc'
print(a.isnumeric())
(6)isalnum():是否由数字和字母组成
a='abc'
print(a.isalnum())
6.字符串替换和连接
(1)replace():两个参数,第一个为被替换的选项,第二个参数为替换的值
a='abc'
print(a.replace('a','k'))
(2)join():字符串的拼接,.前面的是要添加里面的东西 参数是想变的东西
a='abc'
print('—'.join(a))
(3)+:加号可以进行字符串的拼接
7.字符串中其他操作
(1)strip():去除字符中的空格和特殊字符,还有lstrip()和rstrip()
a='abc***'
c=a.strip('*')
print(c)
(2)startswith():判断字符串是否以**开头
a='abc***'
print(a.startswith('*'))
(3)endswith():判断字符串是否以**结尾
a='abc***'
print(a.endswith('*'))
(4)count():判断某个值在字符串中出现的次数
a='abc***'
print(a.count('*'))
(5)len():计算字符串的长度
a='abc***'
print(len(a))
8.字符串的格式化(不太会)
9.字符串的比较
< 、> 、<=、==、!=、>=
规则:从头开始比,相同的不比,比不相同的,比他们的原始值,类似于比他们ASCII码值
ord():获取原始值
chr():获取原始值的字符
10.编码 解码
编码 解码必须采用相同的encoding,否则报错
a='abc***'
#编码
byte=a.encode(encoding='UTF-8')
print(byte)
#解码
a1=byte.decode(encoding='UTF-8')
print(a1)