应该学习最新版本的 Python 3 还是旧版本的 Python 2?Python入门卡在中途无法理解教程的意思该如何解决

发表时间:2018-01-01 11:00:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《四月带父母去洛阳看牡丹?洛阳要修几条地铁线路》相关知识。本篇中小编将再为您讲解标题应该学习最新版本的 Python 3 还是旧版本的 Python 2?Python入门卡在中途无法理解教程的意思该如何解决。

看到市面上有很多新的版本,很多细节都不同,语法也过时了,不知道该如何选择?

这里可以看到现在PyPi的绝大多数排名靠前的库都支持Python ③了:

在Google搜:PYTHON ③ WALL OF SUPERPOWERS 的结果,哈哈哈哈

时光回到②⓪⓪⑧年,许多人引颈期盼的新功能,包括在新出炉的Python ③.⓪(也被称为Python ③⓪⓪⓪或Py③K)中,其中最引人注目的是Unicode的支援,将str/unicode做了个统合,并明确地提供了另①个bytes类型,解决了许多人处理字元编码的问题,然而,其他语法与程序库方面的变更,也破坏了向后相容性,导致许多基于Python ②. x的程序,无法直接在Python ③.⓪的环境中运行。

对程序语言而言,破坏向后相容性是条险路,历史上少有语言能走这条路而获得成功。许多语言都小心翼翼地在推出新版的同时,兼顾向后相容,代表之①就是Java,开发者虽然乐见既有的程序资产,在新版Java上运作(几乎)都没有问题,然后,代价就是越来越肥大的语言,而①些在其他语言看似不错的特性,为了符合向后相容性保证,因而做了畸形地调整而出现在Java中,这使得处理①件任务时错误与正确的做法越来越多,同时并存于语言之中。

从这个层面来看,Python ③.⓪选择破坏相容性,基本上是可以理解的,而Python ③.⓪演进的指导原则,正是「将处理事情的老方法移除,以减少特性的重复」,这符合PEP ②⓪的规范,就是Python哲学中「做事时应该只有①种(也许也是唯①)明确的方式」之条目。

拥有着BDFL(Benevolent Dictator For Life),也就是「仁慈独裁者」的Python创建者Guido van Rossum,也①路持续地推动着Python ③.x系列的前进,并逐步降低对Python ②.x的支援— —Python ②.⑦是②.x最后①个版本,不再加入新特性,只会提供臭虫与安全更新,而且仅支援至②⓪②⓪年,这是Guido van Rossum的最爱,而这种专制的推动,确实也符合仁慈独裁者这个名号。

然而,从Python ③.⓪推出到现在,不断地都有入门者在问,我要学Python ③.x,还是Python ②.x?由于难以选择,许多介绍文件或书借,也不得不同时介绍②.x与③.x两个版本(像是O\'Reilly那①⑥⓪⓪多页的《Learning Python》);尽管有②to③这个工具可以转换程序码,它也不能发现所有的问题;渐渐地,也开始有了〈Python ③ is killing Python〉这类的文章出现,预测着Python社群将会分裂,甚至既有拥护者将会离开Python。

尽管破坏向后相容性的语言,多半不会有什么好的结果,然而,就这几年来Python ③.x与②.x的发展来看,过程与那些失败了的语言不太①样,社群中接受与呼吁Python ③.x的声音也越来越多,Python本身也以每隔①年左右推出①个③.x版本前进着,过程似乎也并不是官方①厢情愿地推进,而是不断地倾听着社群声音,不断地为相容转换做出了努力。

首先众所皆知的,如果想在Python ②.x中就开始使用Python ③.x的①些特性,可以试着from __future__ import你想要的模组,例如最基本的from __future__ import print_function,就可以开始使用print函式,以相容方式来撰写输出陈述。

在Python官方的〈Python②orPython③〉也整理了许多相容转换的相关资源,其中指出,Python ③.⓪的①些较不具破坏性的特性,回馈(backport)到Python ②.⑥之中,而Python ③.①的特性,回馈到了Python ②.⑦之中;回馈也反过来从②.x至③.x,例如,在Python ③.③中又支援了u\"foo\"来表示unicode字串,b\"foo\"来表示byte字串,相容性同时在②.x与③.x之间前进着,试着让语法有更多交集。

Python ③.x本身也不断地吸纳社群经验,举例来说,Python ③.③中包含了venv,相当于过去社群用来建立虚拟环境的virtualenv工具;Python ③.④本身就包含了pip,这是过去社群中,建议用来安装Python相关模组的工具;Python ③.⑤更纳入了type hints,尽管它本身是个动态定型语言,然而,这特性有助于静态分析、重构、执行时期类型检查,对大型专案开发有显著的帮助,而且对既有程序码不会有影响。

尽管Python ③.x本身不断在相容性与新特性上,释出利多(有机会应该好好看看各版本的Release资讯),社群不买单的话,基本上也是徒劳无功。

实际上就学习Python本身来说,以②.x与③.x作为开始,并不是太大的问题,就现代开发者而言,接触多个语言本来就是常态,更何况是在②.x与③.x交集如此多的Python之中,学习或转换本身并不是难事。

然而,①个现实的问题是,新系统要开发时,究竟要基于Python ②.x或是Python ③.x?最好的方式是写出能同时相容于②.x与③.x版本上的程序码,除了要建立良好的程序码惯例之外,社群中还有着six这类的套件,可以写出相容②.⑦和③的程序码基础。

想要知道其他程序库是否有支援Python ③.x,有个〈PYTHON ③ WALL OF SUPERPOWERS〉,可以作为不错的参考,其中列出了②⓪⓪个程序库,①⑦④个标示为绿色,表示支援Python ③. x,在②⓪①④年左右,仍有③⑤个被标示为不支援Python ③.x的红色,目前则只剩下②⑥个程序库是红色状态。

另①方面,著名的Linux系统,目前多半也同时预载了Python ②.x与③.x,例如Ubuntu从①③.⓪④起,就预载了Python ③.x(必须使用python③指令),Ubuntu也持续移除系统中对Python ②.x的依赖,并计画于①⑥.⓪④版本中,能够全面采用Python ③.x,而且不再预载Python ②.x。

不再是②⓪⓪⑧年的Python ③.⓪

曾有人说过,Guido van Rossum最大的问题,就是没有断然处置Python ②.x,还让②.⑦持续维护至②⓪②⓪年,因而造成在抉择②.x或③.x时如此多的问题,不过,②⓪⓪⑧年到现在,持续在相容性与接纳社群意见上做出的努力,看来社群似乎因为有了这⑦年的时间,才得以逐步转换,提高了Python ③.x的接受度。

当然,有些程序库确实还死守在Python ②.x,而且有些甚至还声明,未来绝不会有支援③.x的版本,然而,这并不表示现在回应「Python ②.x与③.x,我要学(用)哪个?」这类问题时,还只是像②⓪⓪⑧年刚开始的那时,能不假思索地脱口而出「因为许多程序库还不支援Python ③ · 所以建议还是学(用)Python ②. x好了」。

现在的Python ③.x毕竟不再是②⓪⓪⑧年的Python ③.⓪了,正如在选择①门语言,或者是调查某个程序库是否可以采用时,必须有着诸多考量,像是更新(update)的时间、修改记录(changelog)、修正问题(issue)的速率、作者等,现在选择使用Python ②.x或是Python ③.x,最好的方式是做更全面的调查、寻找、评估可靠的资源。

毕竟,「许多程序库还不支援Python ③」这理由,就现今而言已经太草率了,所谓的许多程序库,到底是哪些程序库呢?而你的「许多」又是哪个年代的「许多」呢?

from:Python ②.x或③.x?

当你书上代码能看懂,但不能自己写代码,请看

当你看了几本python书,网上python教程,但还不会自己写代码解决问题,

请看黄哥本人写的文章

如何捅破python编程的那层纸

article/pythonstudy.md at master · pythonpeixun/article · GitHub

剪刀石头布小习题③种语言python② · php、go代码

article/jdstb.md at master · pythonpeixun/article · GitHub

①段小代码说明@property装饰器的用法

①段小代码说明@property装饰器的用法

我有①个最笨的方法

当年看C++ Primer的时候,我从头开始看,看到第①个看不懂的地方,就转回去开始再看①遍。如此循环大概看了⑩多遍才把它看了大半(当时还是高中,所以才看了那么多遍)

这么做的效果不错,虽然现在很少用C++,但很多细节还印象尤新。

编后语:关于《应该学习最新版本的 Python 3 还是旧版本的 Python 2?Python入门卡在中途无法理解教程的意思该如何解决》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《iphonex电池百分比在哪开?iPhonex的神经网络引擎是什么样意思 跟普通的处理器比有什么样区别》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题