1. 性能:
py3.x起始比py2.x效率低,但是py3.x现有极大的优化空间,效率正在追赶。
2. 编码:
py3.x原码文件默认使用的utf-8编码,使得变量名更为宽阔。
3. 语法:
* 去除了<>,改为 !=
* 加入了as和with关键字,还有True、False、None
* 整型触发返回浮点数,整除使用 //
* 键入nonlocal语句
* 除去了print语句,加入了print()函数
* 除去了raw_inpu,加入了input()函数
* 新的super(),可以不在用给()传参数了
* 改变了顺序操作符行为。例如:x<y,当x和y累心改不匹配时抛出TypeError错误而不是返回随机的bool值。
* 新式的八进制字变量
4. 字符串和字节串:
* py2:字符串以8bit字符串存储
* py3:字符串以16bit Unicode字符串存储,现在只有str一种类型。
5. 数据类型:
* py3除去了long类型,现在只有一种整型---int,但它的行为就像2.x版本的long
* py3新增byte类型,对应2.x版本八位串。str对象和byte对象可以用.encode()(str -> bytes) or .decode()(bytes -> str)方法相互转化。
6. 面向对象:
引用抽象基类
7. 异常:
* 所有异常从BaseException继承,并删除了StandardError。
* py2:except Exception,e:
* py3:except Exception as e:
8. 其他:
* xrange()改名为range(),想要使用range()获得list,必须显示调用。
* file类型被弃用:
py2:打开文件:file(path),open(path)
py3:打开文件:open(path)
* 很多三方库的使用方式略有改变。