答案:都要学!

是否有如下疑问:Python 3 才是Python的未来。

Python 官方都建议指直接学习Python 3。

Python 2 只维护到2020年。

Python 2慢慢的就没人用了。

那么我们来探讨下 Python 2和 Python 3 放入区别了。

为什么还要学习Python 2(特别是对于新手来说)

Python官网显示:Python 2到2020年停止维护,但不应该成为你拒绝Python 2的理由。

正如XP停止更新以后,很多基础的和入门级的学习都需要XP环境。前几天,微软宣布将在2020年对Win 7停止任何技术支持,之后即使遇到BUG和安全问题,他们也不会再修复。但是,看到周边的同事、朋友、亲戚,到底是用Win 7的多还是用Win 10的多?

据说,按照Python官方的原来计划,Python 2只支持到2015年,但又推迟到2020年,谁也说不准会不会再次延迟呢?

但是,在Python这个圈子,就是有很多人吵着要让别人升级Python 3。很多时候用户并不关心自己用的是Python 2还是Python 3,只要能用就行。所以,用Python 2的人并没有什么动力去升级到Python 3。

如果你觉得,Python 3才是Python的未来,不希望接触Python 2的项目。那么,问题来了,女神跟你说,晚上来我家给我修下电脑呗,但是我的电脑是Windows XP、Win7的,你是去还是不去?

Python 2对于职场老鸟

根据官网下载量统计,Python 2的使用量远远超过Python 3。Python 2的下载量约是Python 3的8倍。所以,学习Python,想直接抛弃Python 2学习Python 3,几乎是不可能的事情。

据统计:

10% 使用 Python 3

20% 既使用Python 2也使用Python 3,Python 2用的更多

70% 使用Python 2

所以,如果你说,我一开始学的就是Python 3,Python 3也是Python的未来,我不想去了解和学习Python 2。那么,你可能要和大半个中国互联网失之交臂了。或许你也不在乎,但是,如果有人拿钱砸你让你维护Python 2的代码呢?

我们都知道,在任何一家公司,升级服务器的操作系统版本都是一个很慎重事情,程序代码版本的升级也是慎之又慎的事情。所以,我们有理由相信,Python 2还会存在很长一段时间。很长是多长呢?至少比2020年还要长。

技术不是非黑即白的,Python也不是

以Windows 来说,当微软宣布 Windows 7 停止更新的时候,很多人依然抱着 Windows 7 不放,当你问他们为什么时,他们会一本正经地说,“新系统好卡啊”,或是“好多软件都不兼容啊”,或是“改变很大啊,好不习惯啊”,甚至是“ Windows 7 已经是很好的系统了,微软出个新系统就是为了坑钱”。

于是乎,春去春又来,每当有新的事物出现,这些人的想法依然没有改变。

当我脑子把 Windows 7 换成 Python 2 、Windows 10换成Python 3,不禁感到一阵恐惧。新事物,新技术的出现,我们要积极拥抱,但不能把原来的抹杀掉了。

其次,从Python 2到Python 3确实有一些差异,这是必然的也是一定的。但是,并没有大家想象的那么大。就像整容一样,这只是优化和提升,而非彻头彻尾的改变。Python 2和Python 3之间的差异不到Python语法的10%,我们可以快速地了解哪些Python 2里面的语法在Python 3中已经被弃用,在我们写代码的过程中,规避掉这一部分语法即可。在Python的最佳实践中,Python 3里弃用的Python语法,在Python 2里面也不推荐使用,不然也不会被弃用了。如果你知道并坚持Python的最佳实践,那么,对你来说,Python 2和Python 3的差异就更小了。

Python2与Python3的具体区别

对比Python 2.7 和 Python3.6,宏观上介绍下Python 3和Python 2的区别。统一了字符编码支持。

增加了新的语法。print、exec等成为了函数。

修改了一些语法。对一些语法进行删除和修改,但整体变化不大,约10%。

修改了一些模块。

优化。

其它。

Python2与Python3主要的区别在以下几个方面:print函数

整数相除

Unicode

异常处理

xrange

map函数

不支持has_key

其它

1、print函数

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

2、整数相除

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

3、Unicode

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

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

-- coding: utf-8 -

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

4、异常处理

5、xrange

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

6、map函数

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

7、不支持has_key

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

8、其它

Python3 采用的是绝对路径的方式进行 import,Python2 中相对路径的 import 会导致标准库导入变得困难。

Python3 使用更加严格的缩进。Python2 的缩进机制中,1 个 tab 和 8 个 space 是等价的,所

以在缩进中可以同时允许 tab 和 space 在代码中共存。这种等价机制会导致部分 IDE 使用存在问题。

Python3 中 1 个 tab 只能找另外一个 tab 替代,因此 tab 和 space 共存会导致报错

剑在手,怎么杀敌看你的了

Python 2和Python 3师承一派,有所同,也有所不同。怎么杀敌,剑在你手里,怎么杀敌看你的了。只要快!准!狠!就行了。

python3 和 python2 是不兼容的,而且差异比较大。

所以先学 Python2 还是 Python3 都不是问题,或者说都是问题。

论学 Python2 还是 Python3,都需要注意另外一边的不同点:所幸就是这些不同点很容易掌握,共同点才是我们需要好好学习的。毕竟,所有武功的招式中都有共通的地方。

所以个人建议:如果是,你在企业中需要用到python而学习python的话,那就要看企业的应用python的版本进行学习;

如果是,想要更多的成熟解决方案,最少的bug,最稳定的应用那就用python2 ;

如果你是在读大学的学生,那我建议你学习python3,等到毕业的时候或许python已经成为了主流。

如果是,个人自学,建议学习python3。

更多推荐

python2和python3学哪个-学习Python 2还是Python 3?