一文看懂怎么用python做数据分析 (python是怎么崛起的)

hello大家好,我是Hiyo酱,一个纯金融背景但是热爱写代码的软妹。

说到Python,很多人可能想到的是龟叔的那句至理名言,“人生苦短,我用Python”。是啊,相比于C语言、汇编语言、Java等语言,Python更容易上手, 尤其是对于想学量化的小伙伴来说,选择Python作为主攻的编程方向,可谓是入行的不二选择 (更关键的是,那乌黑浓密的头发能留的时间会更长一点,O(∩_∩)O哈哈~)。

python是怎么崛起的,一文了解python编程语言

那么,问题来了,学了这么久的Python,你真的知道它的整个发展历程吗?

今天, Hiyo酱就来扒一扒这个红遍大江南北的语言——Python语言的黑历史,哦不,应该是辉煌的历史。

01、Python的前世今生

不查不知道一查吓一跳,Python其实已经三十了,已过而立之年,比头牌咖啡运营商Java、红宝石专业代购Ruby还要老。

所以, Python看起来是新起之秀,其实是老当益壮。

上帝创造了世界,龟叔创造了Python。在1989年圣诞节期间,龟叔在家觉得很无聊。众所周知,程序员的日常娱乐就是写代码,所以为了打发假期,龟叔决定开发一个新的脚本解释程序玩一玩。

龟叔,就是众所周知的Python之父,Guido van Rossum,是一个土生土长的荷兰人。 我发现,很多荷兰人名字里面都有这个“van”,比如说,著名的荷兰显微镜学家,列文虎克。然后,我就去查了一下,发现这个“van”差不多就是“of”或者“from”的意思。

所以龟叔就是,“来自罗森的龟多”。这种取名方式其实全世界都差不多,中国古代人名也经常带上地名,比如石家庄赵子龙、保定张翼德、包头吕布等。

python是怎么崛起的,一文了解python编程语言

龟叔还是个不折不扣的学霸,妈妈嘴上“别人家的孩子”。1982年,龟叔从阿姆斯特丹大学硕士毕业,也就是荷兰最牛的大学,而且还是数学和计算机双学位。

众所周知,Python这个英文单词是蟒蛇的意思,因为Python的图标显而易见就是一只蓝色和一只黄色的蟒蛇搞在一起。

但是,龟叔取名Python并不是因为他喜欢蟒蛇,而是他当时在追一个英国喜剧 Monty Python‘s Flying Circus,龟叔是这个英国喜剧团体Monty Python的狂热粉丝。所以,他就理所当然地用了偶像团体的名字Python作为他新程序的名字,这是一个追星族的基本素养。

02、Python是如何横空出世的

经过龟叔不懈努力,在1991年,第一个Python编译器终于诞生了,我们又多了一种“Hello World”的方式。

Python底层是用C语言编写的,这个很好理解,因为在那个我还没有出生的年代,C语言就是老大哥,但是当时电脑配置很低,程序员就需要绞尽脑汁优化程序,不然电脑跑不动。

当时的龟叔,那时候应该还是龟哥,也不例外。每次他要用C语言实现一个功能,都要花费大量的时间,以至于追剧和把妹的时间大大减少。

python是怎么崛起的,一文了解python编程语言

高尔基说,懒是人类进步的阶梯。龟哥就很想发明一种简洁的语言,来节省程序员自闭敲代码的时间。

于是,他想到了UNIX的解释器shell,许多C语言上百行的程序,shell只需要几行就解决了。但是,shell的本质是调用命令,并不是一个真正的语言。龟叔希望有一种语言,既能像C语言一样功能齐全,又能像shell一样轻松地编程。

这时候他想到了自己正在参与研发的ABC语言,这个语言名字取得这么童趣,一看就是给小白设计的,确实,ABC语言是专门用来教学的,所以读起来通俗易懂。

但是,问题来了!

为啥这么一个易读易用的语言没能流行起来?难道程序员们都陶醉在敲键盘的乐趣之中了吗? 于是,龟叔进行了深刻的反思,得出ABC失败的原因。

首先,ABC开发资金被领导层撤掉了,没钱还做毛线呀,有钱能使鬼推磨,没钱别做白日梦。

其次,这个ABC语言又太过于局限于新手了,小菜鸡总有一天会变成大公鸡,或者老母鸡的,过于简单的ABC语言就不够耍了,所以受众要广,老少咸宜的东西才有发展前景。

当然了,这个名字ABC取得也不够霸气,都不好意思在别人面前装逼。众所周知,不能用来装逼的语言不是好语言。兄弟,你有没有听说过ABC语言?这谁不会啊,啊波次的一哎服哥,这就没法聊了对吧。

除了这几点之外,ABC还有一个致命的缺陷,就是难于拓展,想加点新花样进去就得进行翻天覆地的改动,这肯定要累死个人的。

python是怎么崛起的,一文了解python编程语言

鲁迅先生曾说过,失败是成功他母亲。于是龟叔吸取经验和教训,在进行Python编写的时候,特别注意可拓展性。程序员可以直接用Python写py文件作为拓展模块,也可以深入底层写C程序,引用到Python中使用。

所以,不管是一开始就学Python的纯种Python程序员,还是之前有过C语言老底的程序员,都可以对Python进行自己想要的拓展。

Python最初的版本,是龟叔在1991年2月发布的Python0.9.0。这个版本的Python就已经具有了类class、函数function、异常处理exception、包含列表list和字典dictionary在内的核心数据类型,以及模块module为基础的拓展系统。

如果你现在看到这些感觉一脸懵逼,不要担心,这些内容有时间我一定会在后面的文章当中逐一讲解。 所以,大家平时记得多多关注支持呀~你们的关注支持才是我坚持更新的最大动力。

03、Python势不可挡的发展

在一开始,龟叔是单枪匹马孤军奋战的。后来,Python得到龟叔同事的欢迎,他们也参与到Python的改进中。于是,便构成了Python的核心团队。

1994年1月,Python新版本1.0发布,在这个版本中,新加入了众所周知的lambda、map、filter和reduce。Python变得越加丰满起来。

美国宇航局NASA在1994年甚至把Python作为主要开发语言,都牛气冲上天了。

python是怎么崛起的,一文了解python编程语言

当时,龟叔维护了一个mailing list,Python的核心成员们就通过邮件进行交流,对Python进行拓展和改造。在这期间,python又发布了1.23456。到1.6版本的时候,它已经和python2非常接近了。

2000年,Python2诞生。有意思的是,Python2最重要的一个变化并不是说功能变得多么牛逼,而是Python的发展方式。

2000年5月,python核心成员们开始使用SourceForge进行开发,也就是说,Python从原来的mailing list的方式转变为完全开源的模式。 与此同时,python社区也开始建立起来,Python获得了更加高速的发展。

但是,Python早期在设计上有一些缺陷。比如Python2默认ASCII编码方式,注意一下这个是读(阿斯ki),不是ASC兔,它的全称是American Standard Code for Information Interchange,后面II是英文缩写,而不是罗马数字2。

另外,Python2默认ASCII编码,而不是Unicode,这导致中文日文韩文等等都不能正常使用。

python是怎么崛起的,一文了解python编程语言

那么,这个Unicode和ASCII又是啥呢?众所周知,你和猫讲话要用猫语,和计算机讲话要用计算机语。 传说在计算机历史的早期,以美国为代表的英语系国家主导了整个计算机行业,所以当时只有英语能被翻译成计算机语言,ASCII就是当时的翻译官。

但是,随着越来越多国家的人开始使用计算机,ASCII能力有限,中文、日文、韩文什么的都翻译不出来,因而涉及中文等其他字符时,Python2经常出现乱码。而Unicode编码涵盖了除了英语字符之外各种各样的语言和特殊符号,是个万国翻译官。

可能有人要问,既然Unicode这么牛逼,为啥python还要用ASCII呢?

很多人可能都忘记了python其实年纪蛮大了。当初python都会打酱油的时候,Unicode还没出生呢,所以python一直默认使用ASCII编码。事实上,Python2中已经引入了Unicode,但是是作为一个新的数据类型unicode。程序员在写文本的时候,经常会傻傻分不清楚,bug连天。

除此之外,python2中还有许多其他的问题,比如文本和二进制数据难以分清。

比如说‘abcd’,学过python3的朋友都知道,这就是个abcd四个字母组成的字符串。但是,在python2中就不一定了,你也可以说这是97、98、99、100。众所周知,一夫一妻制是全宇宙的发展方向,python字符串也应该有且仅有一种解读。

由于python变得越来越流行,这些问题也变得越来越严重。 从2004年开始,Python社区的大佬们终于按耐不住,决定对Python进行大刀阔斧的改革。

04、Python的万丈光芒

终于,2008年,Python3.0横空出世。

在Python3下,文本数据和二进制数据划清了界限,python程序员再也不会对字符串产生误解。除此之外,python所有的文本数据自动支持Unicode编码,使得多国语言的使用更加方便。Python3不向前兼容,坚决贯彻分手就要彻底。

时光飞逝日月如梭,转眼间Python3.0已经十年了。 虽然还有许多老项目留恋旧情人,仍然和python2藕断丝连,但是python3无疑是新入坑的猴子们最好的选择。

官方宣布,从2020年1月1日起,停止Python2的更新,Python2正式成为历史。

龟叔写python的初衷就是解放全猿类,所以python最大的特点就是简洁。龟叔有一件T恤,上面写着人生苦短,我用Python。 Python相比于之前的C语言,将许多机器层面上的细节隐藏,让程序员能花更多时间用于思考程序的逻辑,而不是具体的实现细节,因而能为程序员节省大量的时间。

python是怎么崛起的,一文了解python编程语言

打个比方,你如果想造个汽车,用C语言就好比你要亲自造轮子造方向盘等所有元件,但是用Python你就可以使用现成的轮子方向盘等等造汽车了。因此,python可以大大节省程序员的时间,从此妈妈再也不用担心我头秃啦!

众所周知,程序员发际线越靠后说明经验越丰富。

python是怎么崛起的,一文了解python编程语言

比如,VB.NET之父Alan Cooper,Java之父James Gosling,C++之父Bjarne Stroustrup,一望无际的头顶一看就是博学多才,PHP之父Rasmus Lerdorf护城河的发型,JavaScript之父Brendan Eich,这使得如今视头发如生命的猪精男孩女孩们对于计算机编程望而却步。

而从Python之父Guido van Rossum的发量来看,学Python并不会秃头,所以Python理所当然就火热了起来。

python是怎么崛起的,一文了解python编程语言

当然这只是一个玩笑,Python突然之间爆红的原因主要得益于近年来机器学习大热,而Python又是机器学习语言的不二之选,Python受到越来越多人的追捧。

2011年1月,Python被TIOBE编程语言排行榜评为2010年度语言。

2017年,IEEE Spectrum发布的研究报告显示,在2016年排名第三的Python在2017年已经成为世界上最受欢迎的语言,C和Java分别居于第二和第三位。

2018年,Python仍稳居榜首。

python是怎么崛起的,一文了解python编程语言

许多知名的公司、网站也都是用python进行开发。Google和Dropbox自不用说,Python之父所在之处必有Python。实际上,Google Groups、Gmail、Google Maps、AlphaGo等都支持Python作为开发语言。Dropbox作为美国最大的在线云存储网站,每天处理10亿个文件的上传和*载下**,也全部是由Python实现的。

大家所熟知的BitTorrent、YouTube、Facebook、知乎、豆瓣等也都使用Python进行开发。 此外,搜狐、腾讯、网易、百度、阿里、新浪、果壳等公司都在使用Python完成各种各样的任务。

python是怎么崛起的,一文了解python编程语言

Python作为当代最受欢迎的语言,功能当然是非常强大的。

你不仅可以批量*载下**喜欢的日本电影,还可以和朋友一起打游戏,最重要的是还可以赚钱哦。从此升职加薪,当上CEO,赢取白富美,走向人生巅峰!是不是想想就很激动呢?

后面如果时间够的话,我会在今天的基础之下,再专门写一篇“如何零基础入门Python编程”以及有关Python编程相关的实操经验分享。

至此,终于可以成为一名一头浓密秀发的程序员啦!

我是Hiyo酱 @Hiyo酱学量化

CFA、FRM、AQF持证人,一个纯金融背景但热爱写代码的软妹,日常分享一些自己的考证心得和量化学习的经验。

看完记得点个点赞+收藏+关注哇~

python是怎么崛起的,一文了解python编程语言