编码与解码
编码(encode):将Unicode转化为其他编码
解码(decode):将其他编码转换为Unicode
a = '中文' # 程序执行时,会以Unicode储存在内存中
U = a.encode('utf8') # b'\xe4\xb8\xad\xe6\x96\x87' 每个字3个字节
G = a.encode('gbk') # b'\xd6\xd0\xce\xc4' 每个字2个字节
G_U = G.decode('gbk').encode('utf8') #gbk转utf8,先解码再编码
深浅复制
将a的值赋给b,只创建一个变量,与a指向同一个内存地址
引入copy模块,只第一层指向不同地址,更深层数据仍指向同一个地址
修改第一层内容,只改变修改的变量
修改第二层以上内容,两个变量均改变
import copy # 引入模块
a = [1,['a', 'b', ['c','d']]] # 初始化
b = copy.copy(a) # 浅复制
b[0] = 2 # 修改第一层数据
print(a) # 打印a,a变
print(b) # 打印b,b变
b[1][2][1] = 3 # 修改b第三层数据
print(a) # 打印a,a不变
print(b) # 打印b,b改变
引入copy模块,所有数据均指向不同地址。
修改任意数据,只所修改的变量改变,另一个不变
import copy # 引入模块
a = [1,['a', 'b', ['c','d']]] #变量初始化
b = copy.deepcopy(a) # 修改第一层数据
b[1][2][1] = 3 #修改第三层数据
print(a) #a不变
print(b) #b变
bytes和bytearray(了解)
bytearray是bytes的序列
a = '中文' # 程序执行时,会以Unicode储存在内存中
U = a.encode('utf8') # b'\xe4\xb8\xad\xe6\x96\x87' 每个字3个字节
U1 = bytearray(U) # 转化为bytearray类型
U1[3:6] = bytearray("国",encoding='utf8') # 将“文”字的字节用切片的方式转化为“国”字的字节
print(U1.decode('utf8')) # 将U1解码打印
字符串格式化
print('%04d,%05.2f' % (11,1.1)) # 0011, 01.10
使用{}表示占位符。
{0:}.format('python')