------------恢复内容开始------------
1. python2 ,python3的区别
python2 ascii码 python3 UTF-8
python2 prin 支持不加括号 python不支持
python中有range 还有Xrange(生成器) python只有range有序列表
python中用户交互 raw_input python3为input
2. = ,== ,is(比较内存地址) ,id(内容)查看id
= 赋值
== 比较值是否相等
is 比较内存地址
li1 = [1,2,3]
li1 = li2
print(li1 is li2)
print(id(li1),id(li2))
3.分类 数字,字符串 小数据值
数字-5-256范围内 变量对应值一致 ,共同使用一个内存地址
字符串范围使用同一个内存地址 1.不可包含特殊字符 2.s*20 同一个地址 ,s*21两个地址
i1 = 6
i2 = 6
print(id(i1),id(i2))
除了数字和str list 和 dict tuple set 没有小数据池概念
4.编码
ascii码 A :一个字符用一个字节表示 一个字节8位 0000100
unicode A :一个字符用四个字节表示 32位 00010001 0001010 00100010 00101010
utf-8 A: 一个字符用一个字节表示 8位 00101001 中:一个中文用三个字节表示24位 01010101 00100100 00101001
gbk A:一个字符用一个字节表示 8位 01010101 中: 一个中文用两个字节表示16位 01010101 00100101
1.各个编码之间的二进制是不可以互相识别的,会产生乱码
2.文件的储存和传输不能是unicode,只能是utf-8 或者utf-16 或者gbk 或者gbk2312 或者ascii 因为unicode占用流量太大
python3:
python3中的str在内存中的编码方式是unicode
bytes数据类型 str如果需要传输或存储 需要先转换为bytes数据类型
对于英文来说
str 表现形式 str = 'alex'
编码方式 01010101 unicode
bytes 表现形式 s = b’‘alex’ (前面加b表示)
编码方式:00100100 utf-8 gbk gk2312
对于中文来说
str 表现形式 str = '中国'
编码方式 01010101 unicode
bytes 表现形式 s = b‘x\e91\e91\e01\e21\e31\e32’ (16进制)
编码方式:00100100 utf-8 gbk gk2312
str 转换 bytes 英文
s1 = ‘alex’
s11 = s1.encode('utf-8')
print(s11)
str 转换bt\ytes 中文
s2 = ‘中国’
s22 = s2.encode('utf-8')
print(s22 )
------------恢复内容结束------------