1、字符串的驻留机制
字符串驻留:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。
python支持字符串主流机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母和数字)会启用字符串驻留机制。
>>> a="aa_3"
>>> b="aa_3"
>>> a is b
True
>>> a == b
True
>>> c = "dd#"
>>> d = "dd#"
>>> c is d
False
>>> c == d
True
>>> id(c)
2864146157496
>>> id(d)
2864146256648
2、字符串的编码
python3直接支持Unicode编码,可以表示世界上任何书面语言的字符。python3的字符默认是16位Unicode编码,ASCII码是Unicode编码的子集。
使用内置函数ord()可以把字符转换成对应的Unicode编码;
使用内置函数chr()可以把十进制数字转换成对应的字符。
3、字符串搜索
字符串str的正向长度范围:0 到 len(str) - 1
字符串str的反向长度范围:-1 到 -len(str),-1代表的最后一个元素的位置,-len(str)代表的是第一个元素的位置
4、可变字符串
在python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,只能创建新的字符串对象。但是经常我们需要原地修改字符串,可以使用
io.StringIO对象或者array模块。
import io
s = "hello, sxt"
sio = io.StringIO(s)
sio.getvalue()
结果: "hello, sxt"
sio.seek(7)
结果:7
sio.write("g")
sio.getvalue()
结果: "hello, gxt"
5、字符串常用方法
(1)常用方法
str.startswith("指定字符串"):判断是否以指定字符串开头,返回结果为布尔类型
str.endswith("指定字符串"):判断是否以指定字符串结尾,返回结果为布尔类型
str.find("指定字符串"):返回第一次出现指定字符串的位置,若指定字符串不存在,返回-1
str.rfind("指定字符串"):返回最后一次出现指定字符串的位置,若指定字符串不存在,返回-1
str.count("指定字符串"):返回指定字符串出现的次数
str.isalnum():判断字符串所有字符全是字母或数字
str.replace("原字符串","新字符串"):将原字符串替换为新字符串,该方法执行完成后会返回一个新的字符串,并不会修改原有字符串的内容。
(2)去除首尾信息
通过strip()去除字符串首尾指定信息,lstrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息。
str.strip():去除字符串str首尾空格。
(3)大小写转换(会产生新的字符串)
str.capitalize():首字母大写
str.title():每个单词都首字母大写
str.lower():所有字符全转为小写
str.upper():所有字符全转为大写
str.swapcase():所有字符大小写转换
(4)格式排版(居中/左对齐/右对齐)
>>> str = "gjr"
>>> str.center(10)
' gjr '
>>> str.center(10,"*")
'***gjr****'
>>> str.ljust(10,"*")
'gjr*******'
>>> str.rjust(10,"*")
'*******gjr'
>>> str.rjust(10)
' gjr'
(5)其他方法
str.isspace():判断是否为空字符串,其中 也是空字符,如果是则返回True
str.isalpha():判断字符串中是否只包含字符(包括汉字)