Python 英文本意为“蟒蛇”,直到 1989 年荷兰人 Guido van Rossum (简称 Guido)发明了一种面向对象的解释型编程语言(后续会介绍),并将其命名为 Python,才赋予了它表示一门编程语言的含义。
说到Python,它的诞生是极具戏曲性的,据Guido的自述记载,Python语言是他在圣诞节期间为了打发时间开发出来的,之所以会选择Python作为该编程语言的名字,是因为Guido是一个叫Monty Python戏剧团体的忠实粉丝。
看似Python是“不经意间”开发出来的,但丝毫不比其它编程语言差。自1991年Python第一个公开发行版问世后,2004年Python的使用率呈线性增长,不断受到编程者的欢迎和喜爱;2010年,Python荣膺 TIOBE 2010年度语言桂冠;2017年,IEEE Spectrum发布的2017年度编程语言排行榜中,Python位居第1位。直至现在(2021年8月份),根据TIOBE 排行榜的显示,Python也居于前三,且有继续提升的态势(如表2所示)。
Python语言的特点
相比其它编程语言,Python具有以下特点。
1D Python简单易学
“编程零基础,可以学习Python吗”,这是很多初学者经常问的一个问题。当然,计算机基础越好,对学习任何一门新的编程语言越有利,但如果你在编程语言的学习上属于零基础,也完全不用担心。
就我个人的观点,Python作为学习编程的入门语言是再合适不过的,相比其他编程语言(比如Java),Python最大的优势就是非常容易上手。举个简单的例子,如果完成一个功能,使用Java实现需要100行代码,那么使用Python可能只需要20行。
有人可能会问,将 C 语言作为入门语言不好吗?就目前的就业形势来说,仅掌握 C 语言是很难找到高薪的工作的,而掌握 Python 则不同。
并且,在使用其他编程语言编程时(例如C、C++),你需要时刻注意数据类型、内存溢出、边界检查等问题。而Python则不用,因为在底层实现时,它已经帮你—一处理好了。
2> Python功能强大
Python强大的功能是很多用户支持Python的最重要的原因,从字符串处理到复杂的3D 图形编程,Python借助扩展模块都可以轻松完成。
实际上,Python的核心模块已经提供了足够强大的功能,使用Python精心设计的内置对象可以完成许多功能强大的操作。此外,Python的社区也很发达,即使一些小众的应用场景,Python往往也有对应的开源模块来提供解决方案。
3) Python是解释型语言
编程语言按照程序的执行方式,可以分为编译型和解释型两种,典型的编译型语言有C.C++等.而解释型语言有Java、Python等。相比编译型语言,解释型语言最大的优势就是可移植性强。也就是说,Python具有非常好的跨平台的特性。
4) Python是面向对象的编程语言
Python既支持面向过程编程,也支持面向对象编程。在“面向过程”的语言中(如C语言),程序仅仅是由可重用代码的函数构建起来的;而在“面向对象”的语言(如C++)中,程序是由数据和功能组合而成的对象构建起来的。而且和其它面向对象的编程语言(如C++和Java)相比,Python是以一种非常强大,而又简单的方式实现的面向对象编程。
除此之外,Python还有开源、有良好的可扩展性等特点。基于以上这些特性,Python广泛应用在人工智能、图像处理、Web应用开发、自动化运维、网络爬虫等领域。
Python版本的选择
Python自发布以来,共历经了3个大的版本,分别是:
3个版本中,Python 3.0是一次重大的升级,为了避免引入历史包袱,Python3.0没有考虑与Python 2.x的兼容,这也就导致很长时间以来,Python2.x的用户不愿意升级到 Python 3.0。
除此之外,造成目前这种状况的另一个原因是,将现有应用从Python 2.x迁移到Python 3.x是一项不小的挑战。虽然有2to3(后续会介绍)之类的工具可以进行代码的自动转换,但无法保证转换后的代码100%正确。而且,如果不做人工修改的话,转换后的代码性能可能还不如转换前。因此,将现有的复杂代码库迁移到Python 3.x上可能需要付出巨大的精力和成本,某些公司无法负担这些成本。
目前,根据统计显示,使用 Python 2.x的开发者仍占63.7%,而Python3.x的用户占36.3%,由此可见,使用Python2.x的用户还是占多数。在2014年,Python创始人宣布,将Python 2.7支持时间延长到2020。
那么,初学者应该选择什么版本呢?这里建议大家选择Python3.x版本,理由有以下几点:
·使用 Python 3.x已经是大势所趋目前,虽然使用Python 2.x的开发者居多,但使用Python 3.x的开发者正在迅速增加,如图1所示:
另外,根据PEP-404这份文档,
Python 2.x版本将不会再发布2.8版本,且未来非常重要的项目(如Django、Flask和 Numpy)可能都将放弃对2.x的支持,仅支持Python 3.x。因此,从长远来看,学习Python 3.x只有好处。
•Python 3.x在Python 2.x的基础上做了功能升级
Python 3.x对 Python 2.x的标准库进行了一定程序的重新拆分和整合,比Python 2.x更容易理解,特别是在字符编码方面。Python 2.x中对于中文字符串的支持性能不够好,需要编写单独的代码对中文进行处理,否则不能正确显示中文,而Python 3.x已经将该问题成功解决了。
•Python 3.x和 Python 2.x思想基本是共通的
Python 3.x和 Python 2.x思想基本上是共通的,只有少量的语法差别,学会的Python 3.x,只要稍微花点时间学习Python2.x的语法,即可灵活运用这两个不同版本了。
注意,选择Python 3.x也不是没有弊端,很多扩展库的发行总是会滞后于Python的发行版本,甚至目前还有很多库不支持Python 3.x。
因此,在选择Python时,一定要先考虑清楚自己的学习目的,比如说,打算做哪方面的开发,此方向需要用法哪些扩展库,以及这些扩展库支持的最高Python版本等,明确这些问题后,再选择适合自己的版本。
关于Python 3.x和 Python 2.x具体的区别,可阅读《Python3和Python2区别》一节。
初学者应该如何学习Python?
对于初学者来说,要做的就是专注于Python这一门语言,明确学习的重点,把握好学习节奏,由浅入深循序渐进地学习。根据本人多年的学习工作经验,把编程语言的学习分为以下3步,无论你是否有编程基础,都可以对照着来做。
1)多实践,积累代码量
任何一门编程语言,其囊括的知识面都是非常广泛的,从基本的变量赋值、条件循环、到文件操作、并发编程等。但是,千万不要等到把所有知识点都学完了才开始练习,因为到那时你会发现,前面好不容易记住的知识都忘记了。
学习编程,是十分讲究实战的,没有捷径可走,越早练习,练得越多越勤,学习效果就越好。
2)时刻注意代码规范
学习编程语言,在追求快和高效的同时,每一种编程语言都有必要的编码规范,一定不能忽略。
要想成为一名优秀的程序员,从起步阶段就要刻意地去培养自己的编程规范。例如,在刚开始编写代码时,不要将原本多行的代码全部写到一行,也不要随便用a、b、c等字母作为变量的名称。
3)开发经验是必不可少的
要想真正熟练地掌握Python(或者其它编程语言),拥有大中型产品的开发经验是必不可少的,它会让你站得更高,望得更远。
例如,我们几乎每天都会用搜索引擎,但你了解一个搜索引擎的服务器端实现
例如,我们几乎每天都会用搜索引擎,但你了解一个搜索引擎的服务器端实现吗?这是一个典型的面向对象设计,需要定义一系列相关的类和函数,还要从产品需求、代码复杂度、效率以及可读性等多个方面综合考量,同时在上线后还要进行各种优化等。
为了辅助大家更好地学习Python,这里准备了一章Python学习的知识图谱,涵盖了Python的核心知识。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。