因?yàn)樽罱?strong>Python實(shí)在是火得令人匪夷所思,所以我心血來(lái)潮,扒一扒這個(gè)紅遍大江南北的語(yǔ)言的黑歷史,哦不,輝煌的歷史,學(xué)習(xí)一下日進(jìn)千粉的漲粉秘訣。
不查不知道一查嚇一跳,Python其實(shí)已經(jīng)奔三了,而且是29歲的那種實(shí)實(shí)在在的奔三,比頭牌咖啡運(yùn)營(yíng)商Java、紅寶石專(zhuān)業(yè)代購(gòu)Ruby還要老,所以Python看起來(lái)是新起之秀,其實(shí)是老當(dāng)益壯。
上帝創(chuàng)造了世界,龜叔創(chuàng)造了Python。在1989年圣誕節(jié)期間,龜叔在家覺(jué)得很無(wú)聊。眾所周知,程序員的日常娛樂(lè)就是寫(xiě)代碼,所以為了打發(fā)假期,龜叔決定開(kāi)發(fā)一個(gè)新的腳本解釋程序玩一玩。

龜叔就是眾所周知的Python之父,Guido van Rossum,是一個(gè)土生土長(zhǎng)的荷蘭人。我發(fā)現(xiàn)很多荷蘭人名字里面都有這個(gè)“van”,然后就去查了一下,發(fā)現(xiàn)這個(gè)“van”差不多就是“from”的意思,所以龜叔就是,“來(lái)自羅森的龜多”。
.jpg)
這種取名方式其實(shí)全世界都差不多,中國(guó)古代人名也經(jīng)常帶上地名,比如石家莊趙子龍、保定張翼德、包頭呂布等。龜叔還是個(gè)不折不扣的學(xué)霸,媽媽嘴上“別人家的孩子”,1982年龜叔從阿姆斯特丹大學(xué)碩士畢業(yè),也就是荷蘭最牛逼的大學(xué),而且還是數(shù)學(xué)和計(jì)算機(jī)雙學(xué)位。
.jpg)
龜叔給他的新程序取名叫Python,眾所周知,Python這個(gè)英文單詞是蟒蛇的意思,因?yàn)镻ython的圖標(biāo)顯而易見(jiàn)就是一只藍(lán)色和一只黃色的蟒蛇搞在一起。但是龜叔取這個(gè)名字并不是因?yàn)樗矚g蟒蛇,而是他當(dāng)時(shí)在追一個(gè)英國(guó)喜劇 Monty Python‘s Flying Circus,龜叔是這個(gè)英國(guó)喜劇團(tuán)體Monty Python的狂熱粉絲,所以就理所當(dāng)然地用了偶像團(tuán)體的名字Python作為他新程序的名字,這是一個(gè)追星族的基本素養(yǎng)。
.jpg)
經(jīng)過(guò)龜叔不懈努力,在1991年,第一個(gè)Python編譯器終于誕生了,我們又多了一種“Hello World”的方式。
Python底層是用C語(yǔ)言編寫(xiě)的,這個(gè)很好理解,因?yàn)樵谀莻€(gè)我還沒(méi)有出生的年代,C語(yǔ)言就是老大哥,但是當(dāng)時(shí)電腦配置很低,程序員就需要絞盡腦汁優(yōu)化程序,不然電腦跑不動(dòng)。當(dāng)時(shí)的龜叔,那時(shí)候應(yīng)該還是龜哥,也不例外,每次他要用C語(yǔ)言實(shí)現(xiàn)一個(gè)功能,都要花費(fèi)大量的時(shí)間,以至于追劇和把妹的時(shí)間大大減少。魯迅先生說(shuō),懶是人類(lèi)進(jìn)步的階梯,龜哥就很想發(fā)明一種簡(jiǎn)潔的語(yǔ)言來(lái)節(jié)省程序員自閉敲代碼的時(shí)間。
.jpg)
于是,他想到了UNIX的解釋器shell,許多C語(yǔ)言上百行的程序,shell只需要幾行就解決了,但是,shell的本質(zhì)是調(diào)用命令,并不是一個(gè)真正的語(yǔ)言。龜叔希望有一種語(yǔ)言,既能像C語(yǔ)言一樣功能齊全,又能像shell一樣輕松地編程。
這時(shí)候他想到了自己正在參與研發(fā)的ABC語(yǔ)言,這個(gè)語(yǔ)言名字取得這么童趣,一看就是給小白設(shè)計(jì)的,確實(shí),ABC語(yǔ)言是專(zhuān)門(mén)用來(lái)教學(xué)的,所以讀起來(lái)通俗易懂。但是為啥這么一個(gè)易讀易用的語(yǔ)言沒(méi)能流行的,難道程序員們都陶醉在敲鍵盤(pán)的樂(lè)趣之中了嗎?龜叔進(jìn)行了深刻的反思,得出ABC失敗的原因。
首先第一個(gè),ABC開(kāi)發(fā)資金被領(lǐng)導(dǎo)層撤掉了,沒(méi)錢(qián)還做毛線呀,有錢(qián)能使鬼推磨,沒(méi)錢(qián)別做白日夢(mèng)。其次,這個(gè)ABC語(yǔ)言又太過(guò)于局限于新手了,小菜雞總有一天會(huì)變成大公雞,或者老母雞的,過(guò)于簡(jiǎn)單的ABC語(yǔ)言就不夠耍了,所以受眾要廣,老少咸宜的東西才有發(fā)展前景。當(dāng)然了,這個(gè)名字ABC取得也不夠霸氣,都不好意思在別人面前裝逼,眾所周知不能用來(lái)裝逼的語(yǔ)言不是好語(yǔ)言。兄弟,你有沒(méi)有聽(tīng)說(shuō)過(guò)ABC語(yǔ)言,這誰(shuí)不會(huì),啊波次的一哎服哥,這就沒(méi)法聊了對(duì)吧。
除了這幾點(diǎn)之外,ABC還有一個(gè)致命的缺陷,就是難于拓展,想加點(diǎn)新花樣進(jìn)去就得進(jìn)行翻天覆地的改動(dòng),這肯定要累死個(gè)人的。魯迅先生曾說(shuō)過(guò),失敗是成功他媽?zhuān)谑驱斒逦〗?jīng)驗(yàn)和教訓(xùn),在進(jìn)行Python編寫(xiě)的時(shí)候,特別注意可拓展性。程序員可以直接用Python寫(xiě)py文件作為拓展模塊,也可以深入底層寫(xiě)C程序,引用到Python中使用,所以不管是一開(kāi)始就學(xué)Python的純種Python程序員,還是之前有過(guò)C語(yǔ)言老底的程序員,都可以對(duì)Python進(jìn)行自己想要的拓展。
Python最初的版本是龜叔在1991年2月發(fā)布的Python0.9.0,這個(gè)版本的Python就已經(jīng)具有了類(lèi)class、函數(shù)function、異常處理exception、包含列表list和字典dictionary在內(nèi)的核心數(shù)據(jù)類(lèi)型,以及模塊module為基礎(chǔ)的拓展系統(tǒng)。如果你現(xiàn)在看到這些感覺(jué)一臉懵逼,不要擔(dān)心,這些內(nèi)容在我們之后的課程里都會(huì)為大家詳細(xì)講解。如果你覺(jué)得它們像親兒子一樣熟悉,那么你也可以選擇聽(tīng)我們的課程復(fù)習(xí)一遍。
龜叔開(kāi)始是單槍匹馬孤軍奮戰(zhàn)單打獨(dú)斗。后來(lái)Python得到龜叔同事的歡迎,他們參與到Python的改進(jìn)中,構(gòu)成Python核心團(tuán)隊(duì)。1994年1月,Python新版本1.0發(fā)布,在這個(gè)版本中,新加入了眾所周知的lambda、map、filter和reduce。Python變得越加豐滿(mǎn)起來(lái)。美國(guó)宇航局NASA在1994年甚至把Python作為主要開(kāi)發(fā)語(yǔ)言,都牛逼上天了。
當(dāng)時(shí)龜叔維護(hù)了一個(gè)mailing list,Python的核心成員們就通過(guò)郵件進(jìn)行交流,對(duì)Python進(jìn)行拓展和改造。在這期間,python又發(fā)布了1.23456,到1.6版本的時(shí)候已經(jīng)和python2非常接近了。2000年,Python2誕生。有意思的是,Python2最重要的一個(gè)變化并不是說(shuō)功能變得多么牛逼,而是Python的發(fā)展方式。2000年5月,python核心成員們開(kāi)始使用SourceForge進(jìn)行開(kāi)發(fā),也就是說(shuō)從原來(lái)的mailing list的方式轉(zhuǎn)變?yōu)橥耆_(kāi)源的模式,python社區(qū)開(kāi)始建立起來(lái),Python獲得了更加高速的發(fā)展。
.jpg)
但是Python早期在設(shè)計(jì)上有一些缺陷,比如Python2默認(rèn)ASCII編碼方式,注意一下這個(gè)是讀(阿斯ki),不是ASC兔,它的全稱(chēng)是American Standard Code for Information Interchange,后面II是英文縮寫(xiě),而不是羅馬數(shù)字2。Python2默認(rèn)ASCII編碼,而不是Unicode,這導(dǎo)致中文日文韓文等等都不能正常使用。
那么,這個(gè)Unicode和ASCII又是啥呢?眾所周知,你和貓講話要用貓語(yǔ),和計(jì)算機(jī)講話要用計(jì)算機(jī)語(yǔ)。傳說(shuō)在計(jì)算機(jī)歷史的早期,以美國(guó)為代表的英語(yǔ)系國(guó)家主導(dǎo)了整個(gè)計(jì)算機(jī)行業(yè),所以當(dāng)時(shí)只有英語(yǔ)能被翻譯成計(jì)算機(jī)語(yǔ)言,ASCII就是當(dāng)時(shí)的翻譯官。但是,隨著越來(lái)越多國(guó)家的人開(kāi)始使用計(jì)算機(jī),ASCII能力有限,中文、日文、韓文什么的都翻譯不出來(lái),因而涉及中文等其他字符時(shí),Python2經(jīng)常出現(xiàn)亂碼。
而Unicode編碼涵蓋了除了英語(yǔ)字符之外各種各樣的語(yǔ)言和特殊符號(hào),是個(gè)萬(wàn)國(guó)翻譯官。可能有人要問(wèn),既然Unicode這么牛逼,為啥python還要用ASCII呢?很多人可能都忘記了python其實(shí)年紀(jì)蠻大了,當(dāng)初python都會(huì)打醬油的時(shí)候,Unicode還沒(méi)出生呢,所以python一直默認(rèn)使用ASCII編碼。事實(shí)上,Python2中已經(jīng)引入了Unicode,但是是作為一個(gè)新的數(shù)據(jù)類(lèi)型unicode。程序員在寫(xiě)文本的時(shí)候,經(jīng)常會(huì)傻傻分不清楚,bug連天。
除此之外,python2中還有許多其他的問(wèn)題,比如文本和二進(jìn)制數(shù)據(jù)難以分清。比如說(shuō)‘abcd’學(xué)過(guò)python3的朋友都知道這就是個(gè)abcd四個(gè)字母組成的字符串。但是,在python2中就不一定了,你也可以說(shuō)這是97、98、99、100。眾所周知,一夫一妻制是全宇宙的發(fā)展方向,python字符串也應(yīng)該有且僅有一種解讀。
由于python變得越來(lái)越流行,這些問(wèn)題也變得越來(lái)越嚴(yán)重。從2004年開(kāi)始,Python社區(qū)的大佬們終于按耐不住,決定對(duì)Python進(jìn)行大刀闊斧的改革。
終于,2008年,Python3橫空出世。
.jpg)
在Python3下,文本數(shù)據(jù)和二進(jìn)制數(shù)據(jù)劃清了界限,python程序員再也不會(huì)對(duì)字符串產(chǎn)生誤解。除此之外,python所有的文本數(shù)據(jù)自動(dòng)支持Unicode編碼,使得多國(guó)語(yǔ)言的使用更加方便。Python3不向前兼容,堅(jiān)決貫徹分手就要徹底。時(shí)光飛逝日月如梭,轉(zhuǎn)眼間Python3已經(jīng)十年了,雖然還有許多老項(xiàng)目留戀舊情人,仍然和python2藕斷絲連,但是python3無(wú)疑是新入坑的猴子們較好的選擇。
官方宣布,從2020年1月1日起,停止Python2的更新,Python2正式成為歷史。
龜叔寫(xiě)python的初衷就是解放全猿類(lèi),所以python最大的特點(diǎn)就是簡(jiǎn)潔。
龜叔有一件T恤,上面寫(xiě)著人生苦短,我用Python。Python相比于之前的C語(yǔ)言,將許多機(jī)器層面上的細(xì)節(jié)隱藏,讓程序員能花更多時(shí)間用于思考程序的邏輯,而不是具體的實(shí)現(xiàn)細(xì)節(jié),因而能為程序員節(jié)省大量的時(shí)間。
打個(gè)比方就是,你如果想造個(gè)汽車(chē),用C語(yǔ)言就好比你要親自造輪子造方向盤(pán)等所有元件,但是用Python你就可以使用現(xiàn)成的輪子方向盤(pán)等等造汽車(chē)了。因此python可以大大節(jié)省程序員的時(shí)間,從此媽媽再也不用擔(dān)心我頭禿啦!
眾所周知,程序員發(fā)際線越靠后說(shuō)明經(jīng)驗(yàn)越豐富。
比如VB.NET之父Alan Cooper,Java之父James Gosling,C++之父Bjarne Stroustrup,一望無(wú)際的頭頂一看就是博學(xué)多才,PHP之父Rasmus Lerdorf護(hù)城河的發(fā)型,JavaScript之父Brendan Eich,這使得如今視頭發(fā)如生命的豬精男孩女孩們對(duì)于計(jì)算機(jī)編程望而卻步。
而從Python之父Guido van Rossum的發(fā)量來(lái)看,學(xué)Python不會(huì)禿頭,所以Python理所當(dāng)然就火熱了起來(lái)。
當(dāng)然這只是一個(gè)玩笑,Python突然之間爆紅的原因主要得益于近年來(lái)機(jī)器學(xué)習(xí)大熱,而Python又是機(jī)器學(xué)習(xí)語(yǔ)言的不二之選,Python受到越來(lái)越多人的追捧。2011年1月,Python被TIOBE編程語(yǔ)言排行榜評(píng)為2010年度語(yǔ)言。2017年,IEEE Spectrum發(fā)布的研究報(bào)告顯示,在2016年排名第三的Python在2017年已經(jīng)成為世界上最受歡迎的語(yǔ)言,C和Java分別居于第二和第三位,2018年P(guān)ython仍穩(wěn)居榜首。
許多知名的公司、網(wǎng)站也都用python進(jìn)行開(kāi)發(fā)。Google和Dropbox自不用說(shuō),Python之父所在之處必有Python。實(shí)際上,Google Groups、Gmail、Google Maps、AlphaGo等都支持Python作為開(kāi)發(fā)語(yǔ)言。Dropbox作為美國(guó)最大的在線云存儲(chǔ)網(wǎng)站,每天處理10億個(gè)文件的上傳和下載,也全部是由Python實(shí)現(xiàn)的。大家所熟知的BitTorrent、YouTube、Facebook、知乎、豆瓣等也都使用Python進(jìn)行開(kāi)發(fā)。此外,搜狐、騰訊、網(wǎng)易、百度、阿里、新浪、果殼等公司都在使用Python完成各種各樣的任務(wù)。

Python作為當(dāng)代最受歡迎的語(yǔ)言,功能當(dāng)然是非常強(qiáng)大的。你不僅可以批量下載喜歡的日本電影,還可以和朋友一起打飛機(jī),最重要的是還可以賺錢(qián)哦,從此升職加薪,當(dāng)上CEO,贏取白富美,走向人生巔峰!是不是想想就很激動(dòng)呢?
在之后的課程中,我們會(huì)帶領(lǐng)大家從零開(kāi)始入門(mén)Python編程,終于可以做一個(gè)擁有一頭濃密秀發(fā)的程序員啦!
量化金融分析師(簡(jiǎn)稱(chēng)AQF,Analyst of Quantitative Finance)由量化金融標(biāo)準(zhǔn)委員會(huì)(Standard Committee of Quantitative Finance,SCQF)主考并頒證,是代表量化金融領(lǐng)域的專(zhuān)業(yè)水平證書(shū)。 >>>點(diǎn)擊咨詢(xún)AQF證書(shū)含金量
.png)
課程適合人群:
金融工程/數(shù)學(xué)專(zhuān)業(yè)背景的同學(xué)/工作人士,希望進(jìn)一步學(xué)習(xí)Python編程以及在量化投資的實(shí)戰(zhàn)應(yīng)用;
非金融工程專(zhuān)業(yè)背景的同學(xué)/工作人士,希望迅速成為寬客;
金融相關(guān)人員,希望學(xué)習(xí)如何系統(tǒng)的做量化策略;
個(gè)人投資者,希望系統(tǒng)學(xué)習(xí)掌握量化投資相關(guān)的實(shí)務(wù)技能,從模型開(kāi)發(fā),回測(cè),策略改進(jìn),搭建穩(wěn)定的量化交易系統(tǒng)。
量化金融分析師AQF核心課程體系:
1、《量化投資基礎(chǔ)》
主要涵蓋了量化投資領(lǐng)域的必備知識(shí),包括:基本面分析、技術(shù)分析、數(shù)量分析、固定收益、資產(chǎn)組合管理、權(quán)益、另類(lèi)投資等內(nèi)容。
2、《Python語(yǔ)言編程基礎(chǔ)》
包含了Python環(huán)境搭建、基礎(chǔ)語(yǔ)法、變量類(lèi)型、基本函數(shù)、基本語(yǔ)句、第三方庫(kù)、金融財(cái)務(wù)實(shí)例等內(nèi)容。旨在為金融財(cái)經(jīng)人提供最需要的編程方法。
3、《基于Python的經(jīng)典量化投資策略》
包含了最富盛名,最基本的量化交易思想和交易策略。例如:海龜交易模型、Logistics模型、配對(duì)交易模型、波動(dòng)擴(kuò)張模型、Alpha模型、機(jī)器學(xué)習(xí)(隨機(jī)森林模型、主成分分析)、深度學(xué)習(xí)(人工神經(jīng)網(wǎng)絡(luò))等內(nèi)容。
4、《量化交易系統(tǒng)設(shè)計(jì)》
旨在學(xué)習(xí)量化交易系統(tǒng)的具體知識(shí),包括過(guò)濾器,進(jìn)入信號(hào),退出信號(hào),倉(cāng)位管理等詳細(xì)內(nèi)容,并指導(dǎo)學(xué)員設(shè)計(jì)涵蓋個(gè)人交易哲學(xué)的量化交易系統(tǒng)。
5、《量化實(shí)盤(pán)交易》
旨在為解決實(shí)際量化交易策略搭建過(guò)程中的一些問(wèn)題提供較優(yōu)解決方案。 >>>點(diǎn)擊咨詢(xún)AQF相關(guān)問(wèn)題
掌握Python及量化投資技能,我們能做什么?
1、熟悉中國(guó)主要金融市場(chǎng)及交易產(chǎn)品的交易機(jī)制;
2、熟知國(guó)內(nèi)外期貨交易、股市交易的異同點(diǎn)和內(nèi)在運(yùn)行機(jī)制;
3、掌握經(jīng)典量化交易策略細(xì)節(jié)及其背后的交易哲學(xué);
4、掌握金融、編程和建模知識(shí)基礎(chǔ),擁有量化交易實(shí)盤(pán)操作能力;
5、具備獨(dú)立自主地研發(fā)新量化交易策略的能力;
6、掌握量化交易模型設(shè)計(jì)的基本框架,以及風(fēng)險(xiǎn)管理和資產(chǎn)組合理論的實(shí)際運(yùn)用;
7、掌握從策略思想——策略編寫(xiě)——策略實(shí)現(xiàn)餓完整量化投資決策過(guò)程;具備量化投資實(shí)戰(zhàn)交易能力。
.png)
更多內(nèi)容推薦閱讀:
2019年量化金融分析師(AQF)全國(guó)統(tǒng)一考試報(bào)名簡(jiǎn)章
Wind、Excel和Python三大金融技能兼修,下一個(gè)金融分析大神就是你
金程推薦: AQF培訓(xùn) AQF培訓(xùn)機(jī)構(gòu) AQF是什么意思
咨詢(xún)電話:400-700-9596
AQF考友群:760229148
金融寬客交流群:801860357
微信公眾號(hào):量化金融分析師
完善下表,48小時(shí)內(nèi)查收aqf備考資料
(如果沒(méi)收到資料,可以點(diǎn)我咨詢(xún))


.png)


