📣Python来源及发展
1.1 Python来源
1989年的圣诞节,一位来自荷兰,名叫Guidio van Rossum的年轻帅小伙子,为了打发无趣的时光,决定改善他参与设计,不是很满意的ABC语言,随着研究的深入和功能的完善,其特性超越了ABC。在给这个新的脚本语言命名时,他想起了喜爱的Monty Pythoh喜剧团体,于是取名为:Python。
通过这个故事,终于知道咱们为什么发明不了一门编程语言了,对,那是因为我们无论在什么节假日,都没有无聊过,而且还丰富多彩。
历经两年后,也就是在1991年2月份时,Python终于面向大众,发布了第一个公开版本,其版本号为0.9.0。它使用C语言开发实现,支持类、函数、异常处理,还有列表、字典等数据结构。
随着更多程序员的加入,Python快马加鞭,在1994 年1月份发布了 Python 1.0;在2000年发布了Python 2.0;在2008 年 12 月时, 正式发布了Python 3.0,它也被称为 "Python 3000" 或 "Py3K。
随着这几年 Python 3 的使用率急剧上升,作为新手建议直接从 Python 3 学起。没必从Python2入手,毕竟Python3和Python2是不兼容的,还有Python官方公布,会在 2020 年 1 月 1 日起,停止对 Python 2 的更新和官方支持。
到这,你可能会问:Python怎么会获得那么多程序员的喜欢,它究竟有何特点?
1.2 有何特点
特点挺多的,咱只讲几处重点的。
(1) 简单易学
Python的语法就像在读英语一样,简单明了,一目了然,没有多余的边边角角,让你能够更专注于解决业务问题,而无须花费时间去研究语言本身。
它是面向对象的高级语言,具有封装、继承、多态等特点,也就意味着你不用考虑如何管理程序内存使用等诸类底层细节。
(2) 免费开源
Python 是 FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、甚至对它做任何改动,都不用花一分钱。
无论你是出于学习,还是开发商业软件,都不用担心授权问题。商业软件必然把客户绑定在产权上,无法自拔,而开源软件则可以让商业客户从这种折磨中解放出来。
(3) 跨平台
如果在某操作系统下开发的软件,也可在其他系统上运行,那是多么幸福的一件事呀,而Python就可以满足。
如果你不使用依赖于系统特性的代码,那么你的Python 程序无需任何修改就可以运行在Linux、Windows、FreeBSD、macOS、Solaris、OS/2、Amiga、AROS、BeOS、Palm OS、VxWorks、PlayStation等平台上。
(4) 丰富的库
Python拥有众多标准库和第3方库,你想要的各种领域的库几乎都能找得到,那意味着你可以不用重复发明轮子,从而提高工作效率,加快开发进度。
它有正则表达式、文档生成、单元测试、线程、数据库等标准库。也有网页浏览器、FTP、电子邮件、XML、密码系统、GUI(图形用户界面)、Tk 和其他与系统有关的操作。
还有许多其他高质量的第3方库,如用于桌面系统开发的wxPython,用于科学计算或数值计算的Numpy和Matplotlib等等。
(5) 解释性
Python是一门解释性语言,这意味着它不需要在运行前编译,在运行程序的时候才翻译,专门的解释器负责在每个语句执行的时候解释程序代码。
相对于编译型语言(如C++或Delphi),Python运行效率会低一些,可好在它的开发效率高,以空间换时间。
随着硬件的升级和设计思想的变革,编译型和解释型语言越来越笼统,而解释型语言的自身特点也使得编译器服务商愿意花费更多的时间和成本去优化解释器,解释型语言性能超过编译型语言是迟早问题。
1.3 应用领域
国外的Twitter、Google、Yahoo,Facebook,国内的豆瓣、果壳、春雨医生、知乎(Quora) 等知名企业都在使用Python,我们来看看它可应用在哪些领域里。
(1) 人工智能
各种人工智能算法、机器学习、神经网络、深度学习等大多基于Python编写,尤其在PyTorch推出后,更让其站在了AI时代的前端。
PyTorch有许多优势,如动态图机制、网络构建灵活以及拥有强大的社群等。由于其灵活、动态的编程环境和用户友好的界面,受到AI研究人员的推崇。
(2) 网络爬虫
在爬虫领域,Python开源库众多,一搜一大把,而且还简单易用。其中最为突出的要数Scrapy框架。
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,只需要实现少量代码,就能够快速的抓取到数据内容并进行分析和统计。
(3) Web应用
基于Python的Web开发框架比关键字还多,常见的有Django、Tornado、Flask、web.py、 Bottle等。
其中Django架构,应用范围最广,开发速度非常快,学习门槛也低,能够帮助你快速的搭建起可用的Web应用程序。
(4) 桌面软件
开发了那么多年的程序,经常说跨平台,跨平台,只是真正跨过的应用有几个?大多数Web应用,从一开始定下来平台后,后期很少更改的。
桌面系统就不同了,从一开始就希望它可以运行在多个平台上,提供给更多的人使用。Python在这方面也不含糊,提供了PyGTK、PySide、PyQT、WxPython等快速开发桌面统并可跨平台的框架。
其中使用WxPython的企业最多,而它也是Python创始人,Guidio大哥的最爱。
(5) 游戏开发
在网络游戏开发中,Python有很多应用,相比于C++或 Lua,Python有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑。
它非常适合编写1万行以上的项目,而且能够很好的把网游项目的规模控制在10万行代码以内。
其中Pygame游戏框架,封装了图形、动画、文字、音频等操作,方便使用,是众多游戏开发工程师的福音。
(6) 科学计算
在早期的时候,NASA和Google就大量使用Python进行各种复杂的科学运算,积累了丰富的科学运算库。
随着NumPy、SciPy、Matplotlib等众多程序库的开发,Python越来越适合做科学计算、绘制高质量的2D和3D图像。
(7) 云计算开发
如果了解过云计算相关的技术,应该知道目前很火的云计算框架OpenStack就是由Python开发的,如果使用它,就需要具备Python的相关技能。
几乎每家云计算服务商,都提供了Python应用的相关接口,使用它,可很快的进行集成开发。
(8) 金融分析
数据分析已经深入到各个行业中,尤其在金融领域的应用是最广阔的。了解并掌握了Python金融数据分析,对于今后就业相当有吸引力。
Python中的Numpy、Pandas、Scipy等数据分析模块,可以实现金融分析策略,如“双均线”、“周规则交易”、“羊驼策略”等。