首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 2与Python 3的区别

越来越多的库要放弃Python 2了,强哥也开始转向Python 3了。最近的项目开始用Python3写了,也体会了一下2和3的区别。主要的一些区别在以下几个方面:

print函数

整数相除

Unicode

异常处理

xrange

map函数

不支持has_key

print函数

Python 2中print是语句(statement),Python 3中print则变成了函数。在Python 3中调用print需要加上括号,不加括号会报SyntaxError

Python 2

输出

Python 3

输出

输出

整数相除

在Python 2中,3/2的结果是整数,在Python 3中,结果则是浮点数

Python 2

输出

Python 3

输出

Unicode

Python 2有两种字符串类型:str和unicode,Python 3中的字符串默认就是Unicode,Python 3中的str相当于Python 2中的unicode。

在Python 2中,如果代码中包含非英文字符,需要在代码文件的最开始声明编码,如下

在Python 3中,默认的字符串就是Unicode,就省去了这个麻烦,下面的代码在Python 3可以正常地运行

异常处理

Python 2中捕获异常一般用下面的语法

或者

Python 3中不再支持前一种语法,必须使用as关键字。

xrange

Python 2中有 range 和 xrange 两个方法。其区别在于,range返回一个list,在被调用的时候即返回整个序列;xrange返回一个iterator,在每次循环中生成序列的下一个数字。Python 3中不再支持 xrange 方法,Python 3中的 range 方法就相当于 Python 2中的 xrange 方法。

map函数

在Python 2中,map函数返回list,而在Python 3中,map函数返回iterator。

Python 2

输出

Python 3

输出

输出

filter函数在Python 2和Python 3中也是同样的区别。

不支持has_key

Python 3中的字典不再支持has_key方法

Python 2

输出

Python 3

输出

输出

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180322G1Q4UC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券