先说一下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有关的支持,则需要付费给商业供应商。
领取专属 10元无门槛券
私享最新 技术干货