1.创建与驻留机制
- 创建
字符串是一个不可变的字符序列,可使用单引号、双引号或三引号进行定义 - 驻留机制
- 驻留机制的几种情况(交互情况)
#1.字符串的长度为0或1时
s1 = ''
s2 = ''
print(s1 is s2) #True
s1 = '%'
s2 = '%'
print(s1 is s2) #True
#2.符合标识符的字符串
s1 = 'abc%'
s2 = 'abc%'
print(s1==s2) #True
s1 = 'abc%'
s2 = 'abc%'
print(id(s1))
print(id(s2))
print(s1 is s2) #Faulse
s1 = 'abc'
s2 = 'abc'
print(s1 is s2) #True
#3.字符串只在编译时进行驻留,而非运行时
a = 'abc'
b = 'ab'+'c'
c = ''.join(['ab','c'])
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(id(a))
print(id(b))
print(a is b) #False
PyCharm对字符串进行了优化处理
sys中的intern方法强制2个字符串指向同一个对象
2.常用操作
-
查询操作
-
大小写转换操作
-
字符串对齐
-
字符串劈分
-
字符串的判断
-
替换 与 合并
3.比较
4.切片操作
5.格式化字符串
''''设置宽度和小数点后的数字'''
#1. %
print('10%d' % 99) #10表示的是宽度
print('%.3f' % 3.1415926) #.3表示的是小数点后三位
#同时表示宽度和精度
print('%10.3f' % 3.1415926) #表示总宽度为10,小数点后3位
#2. {}
print('{0:3}',format(3.1415926)) #.3表示的是一共三位数
print('{0:.3f}',format(3.1415926)) #.3f表示是3位小数
print('{0:10.3f}',format(3.1415926)) #同时设置宽度和精度
6.字符串的编码转换
s = '天涯共此时'
#编码
print(s.encode(encoding='GBK')) #GBK这种格式中,一个中文占两个字节
print(s.encode(encoding='UTF-8')) #UTF-8这种格式中,一个中文占三个字节
#解码
byte = s.encode(encoding='GBK') #编码
#Byte代表一个二进制数据(字节类型数据)
print(byte.decode(encoding='GBK')) #解码