在上一篇文章中,小编为您详细介绍了关于《四月带父母去洛阳看牡丹?洛阳要修几条地铁线路》相关知识。本篇中小编将再为您讲解标题应该学习最新版本的 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的神经网络引擎是什么样意思 跟普通的处理器比有什么样区别》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器