小知识点总结
1.python2 python3的区别
Python2 与python3 的区别 | ||
| Python2 | Python3 |
| Print’a,b,c’ | Print(‘a,b,c’) |
range | range() xrange() | range |
input | raw_input() | input() |
宏观 | python2X源码重复率高,不规范 | python崇尚简单、优美、清晰。规范化。 |
2.比较
比较 | |
= | 赋值 |
== | 比较的是值否相等 |
Is | 比较的是内存地址 |
3.数字, 字符串的小数据池
小数据池是指在一定范围或程度中节省内存空间。数字的范围 -5 -- 256 之间创建多个用一个ip地址。
字符串:1.不能含有特殊字符。2.s*20 还是用一个地址, s*21以后都不是同一个地址(1个字符)。
剩下的 list dict tuple set没有小数据池。
4.编码 python3当中的
ascii: A: 00000010 8位 1字节 unicode: A: 00000000 00000001 00000010 00000100 32位 4字节 中: 00000000 00000001 00000010 00000110 utf-8: A: 0010 0000 8位 1字节 中: 00000001 00000010 00000110 24位 3字节 gbk: A:00000110 8位 1字节 中:00000010 00000110 16位 2字节1.各个编码之间的二进制,是不能互相识别的,会产生乱码。
2.文件的储存,传输,不能是Unicode(只能是utf-8,utf-16,gbk,ascii,等)
python3 str与bytes的区别
str 在内存中是用Unicode编码的。
bytes类型(数据类型) 除了Unicode编码之外都可以。
对于英文:
str:表现形式: s = 'alex' 编码方式: 010101010 Unicode bytes:表现方式: s=b'alex' 编码方式: 000101010 utf-8 gbk等等 对于中文: str:表现形式: s = '中国' 编码方式: 010101010 Unicode bytes:表现方式: s=b'x\e91\e91\e01\e21\e31\e32'(16进制) 编码方式: 000101010 utf-8 gbk等等encode (编码如何将str转换成--->bytes类型)
str = 'sole'print(str.encode('gbk')) #使str转换成bytes类型,默认编码是utf-8
decode(解码如何将bytes类型转换成--->str)
decode('utf-8') #用什么编码就用什么解码 #如果字符串里面全是字母,gbk是不报错的