前言
要问最近两年最火的语言是什么,那非python莫属。作为人工智能和大数据时代最具竞争力的语言,越来越多的人已经开始把它当做第一语言来学习和使用。我自己也是一名python的开发者,对python非常的喜爱,python也是我的第一语言。你要是问我python好用吗?那我一定会回答你,python是所有语言中最好用的语言(php除外,狗头保命( • ̀ω•́ )✧)。
python的火爆程度已经不用再多说了,一直稳居 TIOBE 编程语言排行榜前三的位置,并且涨幅最大,达到了1.9%!如果不出意外,2020的年度语言非python莫属了。为了见证我大python的光荣时刻,与python一同前行,我决定将我所学整理成一部教程,希望能给那些想要踏入这个秃头行业的小伙伴们带去一些帮助。虽然深知python目前已经有许多非常优秀的教程,但我希望我这个能成为最通俗易懂的那一版(先立个牛逼的flag)。
废话不多说,Here we go!
一、python是什么?
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。(来自百度百科)
二、Python的发展背景
1、python之父
Python的作者,Guido von Rossum(吉多·范·罗苏姆,中国Pythoner更喜欢叫他龟叔),荷兰人。1982年毕业于阿姆斯特丹大学,数学和计算机硕士双学位。尽管他是一位数学家,但他更加享受计算机带来的乐趣。用他的话说,虽然拥有数学和计算机双料资质,但他更趋向于做计算机相关的工作,并热衷于任何与编程相关的工作。
Guido希望有一种语言,这种语言能够像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻松的编程。ABC语言让Guido看到希望,另外Guido van Rossum于20世纪80年代曾在ABC系统开发中工作了数年,他很清楚ABC的优点和不足,这些都为Python的诞生创造了条件。
2、python的诞生
1989年,为了打发圣诞节假期,Guido 开始写Python语言的编译器。Python这个名字,来自于Guido 所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种介于C和shell之间,功能全面,易学易用,可拓展的语言。Guido作为一个语言设计爱好者,已经有过设计语言的尝试。这一次,也不过是一次纯粹的hacking行为。
1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了 :类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
Python的最初版本完全由Guido本人开发完成,并推荐给它的同事们。很快,Python便得到了Guido同事们的认可,他们参与了Python的改进,由此Python的核心团队便由Guido和它的一些同事组成了。Python在设计理念上,进行了高度封装,将一些非常底层的理念隐藏,着重凸显了逻辑层面的编程思考。Python程序员可以不用将时间花在具体的实现细节上,而专注于程序逻辑的思考,这一特征使得python有了大批的追随者。
随着计算机硬件的普及,加之python简洁优雅的风格,使得python逐渐得到了越来越多人的关注。Guido因此创建了一个mail list,用来进行python功能扩展的交流。当用户需要对Python进行拓展或改造时,就通过mail将改动发给Guido。Guido拥有至高无上的决定权,可以决定是否将改动或扩展加入新版本,他因此被称为“终身的仁慈独裁者”。
Python以及其标准库的强大,来自于Guido与整个社区的贡献。进入Python2.0后,Python完全开源。这使得python的社区更加繁荣,进而分支出了自己的newsgroup,网站,以及基金。社区气氛的日益活跃,工作被整个社区分担,Python也获得了更加高速的发展。
到今天,Python的框架已经日趋成熟。Python也发展成了一个崇尚优美、清晰、简单的语言。在Python的开发过程中,社区起到了至关重要的作用。Guido认为自己不是全能型的程序员,所以他只负责制订框架,而由社区中的人才来完善框架。
三、Python的特点
易学:Python的语法简洁,数据结构易于理解,没有指针等难以理解的部分,上手更快
易读:得益于其缩进的语法,使其格式化更强,代码更易读
开发迅速:python的语法简洁,且高度封装。使得其代码量大大减少,开发速度倍增。
丰富的标准库:python的标准库非常丰富,许多功能都已经实现,且封装完好,不用重新造轮子。
互动模式:您可以从终端输入执行代码并获得结果的语言,测试和调试代码片断。
跨平台:得益于开放源代码的特性,python目前在windows,mac,linux平台都可以运行
胶水特性:python语言可以通过程序调用其它的语言代码(如C)
解释性:Python解释器把源代码转换成称为字节码的中间形式,再翻译成计算机的机器语言并运行。
四 、Python的应用场景
操作系统管理、服务器运维的自动化脚本
Python标准库包含了多个调用操作系统功能的库,大多数Linux发行版都集成了Python,可以在终端下直接运行Python。
Web应用开发
Python经常被用于Web开发。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的通信。借助于python的Web框架,如Django,Flask,Tornado,Twisted等,可以轻松的开发和维护复杂且高效的web程序。
网络爬虫
Python有大量的HTTP请求处理库和HTML解析库,常用的爬虫框架,如requests,Scrapy,PySpider,Beautiful Soup等,是爬虫开发的不二选择。
科学计算及人工智能
NumPy、SciPy、Pandas、Matplotlib可以让Python程序员编写科学计算程序。而近两年快速崛起的机器学习及深度学习是得python更加火爆,TensorFlow ,PyTorch,Keras 都是非常著名的深度学习的框架,而且都支持python语言。
桌面软件
PyQt、PySide、wxPython、PyGTK是Python快速开发桌面应用程序的利器。
桌面软件
PyQt、PySide、wxPython、PyGTK是Python快速开发桌面应用程序的利器。
游戏
很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。网易两大游戏客户端引擎,NeoX 和 Messiah,都使用 Python 作为脚本语言。
自动化办公
python 在自动化办公领域越来越受欢迎,批量处理简直是加班族的福音。excel、ppt、word、邮件、文件处理、数据分析处理,这些对于python来说都是很基础广泛的应用。