1、字符串的驻留机制
(1)字符串
在Python中字符串是基本数据类型,是一个不可变的字符序列
(2)字符串驻留机制
仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,Python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量。
(3)驻留机制的几种情况(交互模式)
- 字符串的长度为0或1时
- 符合标识符的字符串
- 字符串只在编译时进行驻留,而非运行时
- [-5,256]之间的整数数字
sys中的intern方法强制2个字符串指向同一个对象
PyCharm对字符串进行了优化处理
(4)字符串驻留机制的优缺点
- 当需要值相同的字符串时,可以直接从字符串池里拿来使用,避免频繁的创建和销毁,提升效率和节约内存,因此拼接字符串和修改字符串是会比较影响性能的。
- 在需要进行字符串拼接时建议使用str类型的join方法,而非+ ,因为join()方法是先计算出所有字符中的长度,然后再拷贝,只new一次对象,比"+"效率高
2、字符串的常用操作
(1)查询操作
(2)大小写转换
(3)内容对齐
(4)分割操作
(5)判断字符串
(6)替换与合并
3、字符串的比较
(1)运算符
>、>=、<、<=、==、!=
(2)比较规则
首先比较两个字符串中的第一个字符,如果相等则继续比较下一个字符,依次比较下去,直到两个字符串中的字符不相等时,其比较结果就是两个字符串的比较结果,两个字符串中的所有后续字符将不再被比较
(3)比较原理
两上字符进行比较时,比较的是其ordinal value(原始值),调用内置函数ord可以得到指定字符的ordinal value。与内置函数ord对应的是内置函数chr,调用内置函数chr时指定ordinal value可以得到其对应的字符
4、字符串的切片操作
- 字符串是不可变类型,不具备增、删、改等操作
- 切片操作将产生新的对象
5、格式化字符串
(1)%作占位符
(2){ }作占位符
(3)f-string占位法
(4)宽度与精度
6、字符串的编码转换
(1)为什么需要字符串编码
(2)编码与解码的方式
-
编码:将字符串转换为二进制数据(bytes)
-
解码:将bytes类型的数据转换成字符串类型