python3和python2的优劣_python2和python3的区别

这篇博客详细对比了Python2和Python3之间的主要差异,包括字符串类型的变化、默认字符编码、print语句到函数的转换、除法运算的行为、包导入规则、类的定义、元类声明、异常处理方式、字典操作的更新、模块合并以及异常链的处理。这些变化对于从Python2迁移到Python3的开发者来说至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

1.字符串类型

python中有两种字符类型:字节字符串和文本字符串。

版本python2python3

字节字符串strbytes

文本字符串Unicodestr

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中处理异常:

try:

raise ValueError,'Invalid value'

except ValueError,e:

pass

python3中处理异常:

try:

raise ValueError,'Invalid value'

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

pass

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.重命名模块

python3python2

ConfigparserConfigParser

filteritertools.ifilter

inputraw_input

mapitertools.imap

rangexrange

functools.reducereduce

socketserverSocketServer

zipitertools.izip

---------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值