(1)数字,字符串,小数据池
数字范围:-5~256之间时,将共用一个内存地址
字符串:不含有特殊字符的字符串共用一个地址,单个字符串*20及其20以下数字,共用一个地址
list=[1,2,3] list1=list print(id(list), id(list)) #id()用来输出内存地址, #输出:相同的内存地址
s="wabnga" s1=s print(id(s), id(s1)) #输出:相同的地址 s="@a" s1=s print(id(s), id(s1)) #输出 :不一样的内存地址
(2)编码
编码分为:
ASCII:一个字节表示一个字母
unicode: 4个字节表示一个字母
4个字节表示一个中文
utf-8: 一个字节表示一个字母
3个字节表示一个中文
gbk: 一个字节表示一个字母
2个字节表示一个中文
(3)各个编码之间的二进制不能互相识别,会产生乱码
(4)文件的存储,传输,是以utf-8 ,gbk等编码形势,不能以unicode编码 (重要)
(5)python3中 str 是以Unicode的编码形式存在的,因此如果想要进行数据的传输或者存储,需要将str转换成utf-8,gbk等编码形势。
(6)bytes:
utf-8,gbk等编码形式的统称
(7) str:Unicode编码 bytes: utf-8,gbk等编码形势,可以进行文件的传输与存储
str转换成bytes: encode(),叫做编码。()中填入编码类型
s="wangran" n=s.encode("utf-8") print(n)
(8)元祖
tupe=(2) tupe1=(2,) print(tupe,tupe1) #输出:2 (2,)
总结:如果元祖里面没有逗号,则输出该什么类型就是什么类型,如果有逗号,则输出元祖。
课后习题
list=[22,33,55,77,99] for i in list: if i%2==1: #如果列表不是数字,则可以变成:if list.index(i)%2==1 list.remove(i) else: continue print(list)