6:python2、python3 的区别及小数据池
一、python2 与python3的区别
1、print python2中输出的格式为:print'' python3输出为print()
2、在python2中xrange是个生成器,可以转化成range,在python3中直接是range
3、在python2中用户交互是raw_input,在python3中是input.
二、关于内存地址(只有数字和字符串才有小数据池, = 是赋值,==是比较的是值,is 是比较,比较的是内存地址 )
关于 is 比较内存地址的情况:
1、
2、数字:在数字 -5---256范围内,共用相同的id(也就是如果在这个范围内,a ,b 分别被赋予相同的值的话,那么他们的内存地址相同)
3、字符串:
1)不能有特殊字符串
2)s*20还是同一个地址,s*21以后就是两个内存地址了
三、python2 和 python3 通用的编码方式
1、utf-8编码方式: 英文 :A 00100000 8位 1字节
中文: 中 00000001 00000010 00001110 24位 3 字节
2、gbk 英文: A 00000110 8位 1字节
中文: 中 00000010 00000110 16位 2字节
各个编码之间二进制,是不能互相识别的,会产生混乱
文件之间的储存、传输、不能用unicode码(因为所占用的空间太大),只能用utf-8、utf-16 、gbk 、gb2312、ascii码
3、str在python中是用unicode码,还有一种是bytes 类型
英文 str: 表现形式 s = 'alex'
编码方式 0101010101 unicode
bytes:表现形式 s = b'alex'
编码方式 00101010 utf-8 gbk
中文 str: 表现方式 s= '中国'
编码方式 01010110 utf-8 gbk
bytes: 表现方式 b'x\e91\e91\e01\e21\e31\e32
编码方式 01001100 utf-8 gbk
encode 编码 用于将utf-8转化成bytes