python2和python3的一些区别

性能:py3.x起始比py2.x效率低,但是py3.x有极大的优化空间,效率正在追赶。

编码:py3原码文件默认utf-8编码,使得变量名更为广阔。

语法:1,去除了 <>  ,改用了  != 

   2,加入了as和with关键字,还有True,False,None

   3,整型触发返回浮点数,整除使用了‘//’

   4,去除了print语句,加入了print函数

   5,去除了raw_input,加入了input()函数

   6,新的super(),在继承父类的时候乐意不再给super()传参数

   7,改变了顺序操作符的行为,例如x<y,当x和Y类型不匹配时抛出TypeError,而不是返回bool值

字符串和字节串:

  py2中字符串是以8-bit 字符串存储

  py3中字符串以16-bit Unicode字符串存储,现在的字符串只有str一种类型

数据类型:

  py3中去除了long类型,现在只有一中整型-- int,但它的行为就像2.x版本的long

  新增了bytes类型,对应于2.x版本的八位串。str对象和bytes对象可以使用 .encode ()(str ->bytes) or .decode()(bytes -> str)方法相互转化

面向对象:引入了抽象基类

异常:所有异常都从BaseException继承,并删除了StardardError

  py2:

1 try:
2     ......
3 except Excetion, e:
4     ......

  py3:

try:
    .....
except Exception as  e:
    ......

其他 :

  range和xrange的区别:

    py2中:

      range 函数说明:range( [start,] stop [,step]),根据start与stop指定的范围及step设定的步长,生成一个序列。   xrange 函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器

    py3:

      已经将xrange函数删除,range函数同py2中的xrange函数用法相同

  file类被废弃:

    打开文件直接使用   open(path)

猜你喜欢

转载自www.cnblogs.com/Li-1198208544/p/9448071.html