小知识点总结
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是不报错的