1、默认编码方式
# Python2 默认编码方式是 ascll码
# Python3 默认编码方式是 utf-8# Python2 输出中文要加 # -*- encoding:utf-8 -*-
# Python3 不需要
2、print
# Python2 可以使用 print,也可以使用 print() 例: print('lili') 或 print 'lili'
# Python3 只能使用 print() 例: print('lili')
3、input
# Python2 中是 raw_input
# Python3 中是 input
4、除法
# Python2 不会,如:5/2=2
# Python3 会取余 如:5/2=2.5
5、内涵
# Python2 1,臃肿,源码的重复量很多 2,语法不清晰,掺杂着C,php,Java,的一些陋习。
# Python3 几乎是重构后的源码,规范,清晰,优美。
6、函数
# Python3 中的函数都是新式类
# Python2 中的函数 新式类和经典类共存
新式类都继承自object,且super(),和mro()只存在于新式类,只要继承自object,都是新式类
在多继承问题中:
1、新式类遵循广度优先,即 A 和 E 能同时到达F ,则走完A之后走C ,即 D -> B -> A -> C -> E -> F
super的本质 :不是单纯找父类 而是根据调用者的节点位置的广度优先顺序来的,即和广度优先正好相逆 F -> E -> C -> A -> B -> D
2、经典问题遵循深度优先 ,一条路走到头,即 D -> B -> A -> F -> C -> E
7、其他
'True和False':py2中是两个全局变量(1和0)可以重新赋值;py3中为两个关键字,不可重新赋值'迭代':py2:xrange、range py3:统一使用range,并且range的机制也进行修改并提高了大数据集生成效率'Nonlocal':py3专有的(声明为非局部变量)'yield':py2:yieldpy3:yield/yield from'文件操作':py2:readliens()读取文件的所有行,返回一个列表,包含所有行的结束符xreadliens()返回一个生成器,循环取值py3: 只有readlines()指定字节python2在编译安装时,可以通过参数-----enable-unicode=ucs2 或-----enable-unicode=ucs4分别用于指定使用2个字节、4个字节表示一个unicode;python3无法进行选择,默认使用 ucs4查看当前python中表示unicode字符串时占用的空间:
impor sys
print(sys.maxunicode)
# 如果值是65535,则表示使用usc2标准,即:2个字节表示
# 如果值是1114111,则表示使用usc4标准,即:4个字节表示包结构:py2:必须有__init__py3:不是必须的了exec语句被python3废弃,统一使用exec函数不相等操作符"<>"被Python3废弃,统一使用"!="long整数类型被Python3废弃,统一使用int迭代器iterator的next()函数被Python3废弃,统一使用next(iterator)异常StandardError 被Python3废弃,统一使用Exception字典变量的has_key函数被Python废弃,统一使用in关键词file函数被Python3废弃,统一使用open来处理文件,可以通过io.IOBase检查文件类型