为了提高生产力,用2.7为了迎接未来,用3.x

不维护的东西多了去了,不维护不代表不能用。

等到需要用的框架支持3.x之后再转,一点都不算晚。

感觉可以跟你用途划分,如果快速上手后端,Python2会是目前大部分公司选择的,不过应该很快会被Python3代替,Python2到2020年就停止支持了。老项目不大会升级,只会维护,新业务会开Python3。

如果搞AI可以上Python3,目前大部分库在停止支持Python2,3会更普遍。

也不必太纠结学哪个好,根据目前的处境去选吧,即使以后从2过度到3也不会耗费多少精力。主要根据你目前的处境去选就行了。


你已经没有可选择性了,放弃P2吧,p3才是王道!


没得选,py2马上淘汰,主流库已经跟上py3了。就如xp系统和win10,你选什么。

泻药

月经帖啊,每过一段时间都会有这个问题。。。。。

Python2

大部分云伺服器上现在默认的python版本还是2.

后期实践上2转3很方便的其实。区别在与各种包的支持,而包这个东西,还是看具体实施。

语法上从你初学的层面上其实没什么大区别

我的建议是学习2,然后在特定包的情况下,用用3,。反正就是环境变数切换的问题。


Python3整体的支持环境已经比较好了,而且Python2到2020年就停止维护啦。

请看倒计时:

Python 2.7 Countdown?

pythonclock.org

蛤蛤。


泻药

看你的目标是啥

如果你只是想用一次拉倒,那就用你顺手的,同一种语言差别不应该很大

如果你是想生产用,嗯,那你就要小心一点了

breaking changes永远是生产环境的大敌

从这一点上说,py这门语言生产用要有这个领悟


谢邀,跟上时代学新版本!

1. print不再是语句,而是函数,比如原来是 print abc 现在是 print(abc)但是 python2.6+ 可以使用 from __future__ import print_function 来实现相同功能

2. 在Python 3中,没有旧式类,只有新式类,也就是说不用再像这样 class Foobar(object): pass 显式地子类化object但是最好还是加上. 主要区别在于 old-style 是 classtype 类型而 new-style 是 type类型

3. 原来1/2(两个整数相除)结果是0,现在是0.5了python 2.2+ 以上都可以使用 from __future__ import division 实现改特性, 同时注意 // 取代了之前的 / 运算

4. 新的字元串格式化方法format取代%错误, 从 python2.6+ 开始已经在str和unicode中有该方法, 同时 python3依然支持 % 算符

5. xrange重命名为range同时更改的还有一系列内置函数及方法, 都返回迭代器对象, 而不是列表或者 元组, 比如 filter, map, dict.items 等

6. !=取代 &< &> python2 也很少有人用 &< &> 所以不算什么修改

7. long重命名为int不完全对, python3 彻底废弃了 long+int 双整数实现的方法, 统一为 int , 支持高精度整数运算

8. except Exception, e变成except (Exception) as e只有 python2.5 及以下版本不支持该语法. python2.6 是支持的. 不算新东西

9. exec变成函数类似 print() 的变化, 之前是语句.

简单补充下*

主要是类库的变化, 组织结构变了些. 但功能没变. urlparse - &> urllib.parse 这样的变化* 最核心的变化它没有说, 对 bytes 和 原生 UNICODE 字元串的支持, 删除了 unicode 对象, str 为原生 unicode 字元串, bytes 替代了之前的 str 这个是最核心的.* 其它... 貌似不怎么重要了.

python学习资料,交流讨论可加群:308754087


推荐阅读:
相关文章