小知识总结
python2与python3 在编程格式上有一定程度的不同
python2 python3
print 'xxxxx' print()
在python2中print后面可以不用小括号,而python3是必须的
range() xrange() range()
生成器python2可以用这两种方式,但是python3只能这一种
raw_input() input()
python的输出前面有个 raw_ ,python3就不需要,相对更简洁
= 赋值 == 比较值是否相等 is 比较(比较的是内存地址) id 内容
数字,字符串的小数据池概念
小数据池是python为了提高效率,对小值数据使用同一地址的做法
数字的范围在 -5--256 时会共用同一地址
字符串:
1.不能有特殊字符
2.x*20之前还是同一地址 之后都是两个地址
list dict tuple set 没有小数据池的概念
编码
各个编码之间的二进制是不能互相识别的,会产生乱码
文件的存储,传输不能是unicode,只能是utf-8 utf-16 gbk gbk2312 ascii等
因为unicode是32位编码方式,占用的内存比较大
python3的str在内存中是用unicode编码,str在转换成bytes类型再进行存储和传输
.encode() 编码 将str转换成bytes