1.二次编码
- ascii 不支持中文
- gbk 支持中文 2个字节 包含ascii
- Unicode 万国码 python3 内存Unicode
- utf-8 可变的长度 英文 1字节 欧洲2个字节 亚洲3个字节
- unicode 内存
- 硬盘 utf-8 字节 存储 传送
s = "字符串"
s1= s.encode("utf-8") #编码 编码集
print(s1)#b'xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2'
s = "zhy"
s1 = s.encode("utf-8")
print(s1)#b'zhy'
s = "赵海宇"
s1 = s.encode("utf-8")
print(s1.decode("utf-8")) #赵海宇
2.基础数据补充
li = [1,2,3,4,5]
for i in li:
li.append(0)
print(li) #li=[1,2,3,4,5,0,0,0,0,0, ]
li = [1,2,3,4,5]
for i in li:
li.append(i)
print(li) #循环
li = [1,2,3,4,5]
for i in li:
li.remove(i)
print(li)#[2,4]
li = [1,2,3,4,5]
for i in li:
li.pop(i)
print(li)#[1,2]
for i in range(len(li)):
li.pop()
print(li) #[]
3.深浅拷贝
- 浅拷贝 copy
- 只拷贝一层 元素是不可变的 就不会变
- 元素是两个可变的 元素就不会变
li = [1,2,3,4,5]
lst = li.copy()
print(li)#[1, 2, 3, 4, 5]
print(lst)#[1, 2, 3, 4, 5]
li = [1,2,3,4,[5,3,9]]
lst = li.copy()
li[-1].append(55)
print(li)
print(lst)
import copy
li = [1,2,3,4,[5,3,9]]
lst = copy.deepcopy(li)
print(lst)#[1,2,3,4,[5,3,9]]
print(lst)#[1,2,3,4,[5,3,9]]
import copy
li = [1,2,3,4,[5,3,9]]
lst = copy.deepcopy(li)
li[-1].append(66)
print(li)#[1, 2, 3, 4, [5, 3, 9, 66]]
print(lst)#[1,2,3,4,[5,3,9]]
4.is == 区别
- == 比较两边的值
- is 比较两边的内存地址
- 代码块 节省资源 一个文件就是一个代码块
- 代码块机制:
- 数字:-5 ~ 256
- 字符串:乘法的时候总长度不能超过20
def fun1():
a=1000
return a
def func2():
a=1000
return a
print(fun1() is func2()) #False