zoukankan      html  css  js  c++  java
  • python2和python3的主要区别

    1.字符串类型

     
    版本 python2 python3
    字节字符串 str bytes
    文本字符串 Unicode str

     
     
     
     

    2.默认字符

    python2中默认的字符串类型默认是ASCII,python3中默认的字符串类型是Unicode。
     

    3.print

    python2中,print是个特殊语句,python3中print是函数。

    python2:print 'hello word!'

    python3:print('hello word!',file=sys.stderr)

    4.除法/

    python2中/的结果是整型,python3中是浮点类型。

    5.导入

    python2中的包导入顺序:标准库—相对倒入(即当前目录)—绝对导入(sys.path)

    python3中的包导入顺序:标准库—绝对导入(如果想要相对导入,使用from .moudel)

    6.类

    python2中默认类是旧式类,需要显式继承新式类(object)来创建新式类。

    python3中完全移除旧式类,所有类都是新式类,但仍可显式继承object类。

    7.元类声明

    python2中声明元类:__metaclass__ = MetaClass

    python3中声明元类:class newclass(metaclass=MetaClass):pass

    8.异常

    python2中引发异常:raise ValueError,'Invalid value'

    python3中引发异常:raise ValueError('Invalid value')——在python2中也生效

    9.处理异常

    python2中处理异常:

    except ValueError,e:
    except ValueError as e:#在python2中也生效

    python2中异常链会丢失原始异常信息,即:处理B异常时引发了A异常,B异常信息会丢失。

    python3中将原始异常信息赋值给__context__属性。并且可以显式指定一个异常作为另一个异常的子句:raise DatabaseError() from IOError()

    10.字典

    python2中的dict类中的keys、values和items均返回list对象,iterkeys、itervalues和iteritems返回生成器对象。

    python3中移除了list、只返回一个生成器的对象,只保留视图(生成器),但方法名为:keys、values和items。


    11.模块合并

    python2中的StringIO和cStringIO合并为python3中的io

    python2中的pickle和cPickle合并为python3中的pickle。

    python2中的urllib、urllib2和urlparse合并为python3中的urllib

    12.重命名模块

    python3                                       python2
    Configparser                               ConfigParser
    filter                                             itertools.ifilter
    input             raw_input
    map             itertools.imap
    range              xrange
    functools.reduce         reduce
    socketserver          SocketServer
    zip               itertools.izip

  • 相关阅读:
    Spring框架——JdbcTemplate(Spring对Jdbc的封装)
    Spring框架——批处理(batch)和事务(Transaction)
    Spring框架——AOP(面向切面编程)详解
    Spring框架——关于IOC容器和注解的36个小实验
    学习新技术的 10 个建议
    解决 PHP Fatal error: Call-time pass-by-reference has been removed
    mysql下float类型使用一些误差详解
    windows 如何查看端口占用情况
    插件机制
    .net/c#常用框架/中间件简介
  • 原文地址:https://www.cnblogs.com/orvis/p/11125933.html
Copyright © 2011-2022 走看看