未明学院:Python2与Python3的主要区别

原创: 未明学院

未明学院:Python2与Python3的主要区别_第1张图片

先说一下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与Python3的主要区别_第2张图片

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

未明学院:Python2与Python3的主要区别_第3张图片

03、编码的改变

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

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

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

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

04、用户交互input

python3:input ()

未明学院:Python2与Python3的主要区别_第4张图片

python2:raw-input()

未明学院:Python2与Python3的主要区别_第5张图片

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有关的支持,则需要付费给商业供应商。

你可能感兴趣的:(文章)