小知识点总结
1.python2和python3的区别
|
python2
|
python3
|
默认编码
|
ascii
|
utf-8
|
input()
|
raw_input()
|
input()
|
print
|
可以不加()
|
必须加()
|
range
|
有xrange
|
只有range
|
2.= == is id
= 赋值
== 比较,比较值是否相等
is 比较内存地址是否相等
id() 获取数据的内存地址
3.数字、字符串的 小数据池
小数据池,节省空间
数字的范围:-5-256
字符串:没有确切的规定,只有规律:有特殊字符的一定不是小数据池
4.字符编码(python3)
编码 |
英文
|
中文
|
ascii
|
1个字节(1byte)
|
无
|
unicode
|
4个字节
|
4个字节
|
utf-8
|
1个字节
|
3个字节
|
gbk
|
1个字节
|
2个字节
|
1)编码不同会出现乱码,会出现乱码
2)数据的储存、传输不能用unicode(内存、浏览消耗过大),一般以utf-8,ascii,gbk进行储存和传输
3)在内存中str以unicode的编码储存
4)bytes是一种数据类型,str->bytes 引号前加个b
英文:
str:
表现形式:s = 'tom'
编码:unicode
bytes:
表现形式:s = b'tom'
编码:utf-8 ascii gbk
中文:
str:
表现形式:s = "中"
编码:unicode
bytes:
编写形式:二进制
编码:utf-8 gbk ascii
总结
编码:unicode ->
str->bytes
格式:encode('编码')
原因:用unicode进行数据的储存和传输,消耗过度的内存和流量,即金钱
不用bytes作为内存编码而用str的原因:中文的bytes是二进制(16进制的形式表现),正常程序员看不懂