python2与pyton3区别
python2:
print() 或 print 'abc'
range() xrange() 生成器
raw_input()
python3:
print()
range()
input()
= 赋值、== 比较值是否相等、 is 比较,比较的是内存地址
li1 = [1,2,3]
li2 = li1 #两者内存地址相同
数字,字符串 都有小数据池,在一定程度上节省空间
数字范围-5 到256 ,创建时,内存会相同
字符串:1,不含有特殊字符
2.s*20 还是同一个地址,s*21以后,不同地址
list、tuole、dict、set无小数据池。
编码
ASCII
A:00000010 8位 1个字节
Unicode 开始16位
A:00000000 00000001 00000010 00000100 32位 4字节
中:00000000 00000001 00000010 00000110 32位 4字节
utf-8
A:0000010 8位 1个字节
中:00000001 00000010 00000110 24位 3个字节
gbk
A:00000010 8位 1个字节
中:00000010 00000110 16位 2个字节
1、各个编码直接的二进制,是不能互相识别的,会产生乱码
2、文件的储存,传输,不能是Unicode
python3:str 在内存中是用Unicode编码。
bytes类型
对于英文:
str :表现形式 s = ‘al’
编码方式:Unicode
bytes:表现形式 s=b‘de’
编码方式 :00010110,utf-8,gbk..
对应于中文:
str :表现形式 s = ‘中文’
编码方式:Unicode
bytes:表现形式 s=b‘x\e91\e91\e01\e21\e31\32’
编码方式 :00010110,utf-8,gbk.
encode()编码
decode()解码