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

Python2与Python3的主要区别

先说一下Python 由来,1989年,荷兰人Guido(人称“龟叔”),为了打发圣诞节假期,龟叔开始写Python语言的编译器,并于1991年正式发布。

01

代码特点

Python 2于2000年10月16日发布,稳定版本是Python 2.7。Python 3于2008年12月3日发布,不完全兼容Python 2。

python2 的代码混乱,重复较多,冗余。

python3源码规范、清晰、简单优美。

02

代码细分差异

python3 print("内容"):

python2 print()或者print '内容':

03

编码的改变

Python2默认ASCII编码方式,但是ASCII编码无法对中文等字符进行有效编码,因此在涉及到中文等其他字符的编码问题时,ASCII不仅无能为力,而且经常带来一些乱七八糟的错误,这也是Python2中经常出现编码错误的原因之一。

2008年横空出世的Python3解决了这一问题。

Python3默认的编码方式是UTF-8。

在编写Python3.0以后的代码时,新手的第一行代码不用再纠结到底使用#coding = utf-8还是用# -- coding:utf-8 --

04

用户交互input

python3:input ()

python2:raw-input()

05

unicode不同

python3x:unicode 默认是4个字节表示一个字符

python2x :unicode 默认2个字节表示一个字符

06

nonlocal关键字

Python2中要想在嵌套函数中将一个变量声明为非局部变量是不可能的;Python3中加入了nonlocal关键字,可以在嵌套函数中给变量前面添加关键字nonlocal,就可在嵌套函数之外使用嵌套函数中的变量。

Python3x加入nonlocal(nonlocal 用来声明外层的局部变量),Python2x则没有nonlocal。

07

init文件

python3x新建的包里面的init文件如果你删除该文件 包照样可以被调用,也就是下面的这个文件:

python2x新建的包如果没有init文件 则包不能够被调用 直接报错。

两者的区别不只这么多,在这里只是给出了一些常见的区别。

需要注意的是,现在流行的都是python3系列,并且2018年3月,该语言作者在邮件列表上宣布Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券