0 緣起
一直想再學(xué)一種語(yǔ)言熄浓。大學(xué)里學(xué)過(guò) BASIC情臭,工作后學(xué)了FORTRAN 和 Pascal,也用來(lái)解決工作中的計(jì)算問(wèn)題赌蔑。這么多年過(guò)去了俯在,F(xiàn)ORTRAN 幾乎絕跡,Delphi 也日漸式微娃惯。曾經(jīng)有學(xué)習(xí) C++的想法朝巫,但是不知道什么原因,總是不喜歡C++石景,看上去別扭劈猿。于是學(xué)習(xí)C++就不了了之了。
1 選擇了 Python
就像說(shuō)不出什么理由不喜歡C++潮孽,也不知道為什么看到 Python 就突然喜歡上了揪荣。感到這就是自己要學(xué)的那門語(yǔ)言,那就開始學(xué)吧往史。
我的便攜機(jī)是Mac book pro仗颈,安裝的系統(tǒng)是masOS High Sierra 10.13.1 。Python 有兩個(gè)版本2和3。如果不需要Python 3挨决,Mac缺省狀態(tài)下请祖,已經(jīng)有了Python 2.7.10 版本,打開終端就脖祈,可以執(zhí)行Python輸入了肆捕。
但是使用終端也就是測(cè)試一下 print “hello world”,沒有什么大的用處盖高。至于視頻上教的使用 Shell 的辦法也不是什么長(zhǎng)久之計(jì)慎陵。所以還是需要有Python 的編程環(huán)境。
2工作目錄
不管安裝什么編程環(huán)境喻奥,還是要把工作目錄確定下來(lái)席纽。工作目錄主要用來(lái)存放學(xué)習(xí)過(guò)程中的源代碼。搞清楚當(dāng)前的目錄還是很重要的撞蚕。特別是以后版本管理润梯,使用git,都是基于這個(gè)目錄甥厦。目錄也不要太深了纺铭,這樣改變目錄比較麻煩。
在終端鍵入 pwd 命令確定當(dāng)前的目錄矫渔,用 cd 改變當(dāng)前的目錄彤蔽。
3 下載
先要解決下載的問(wèn)題摧莽。無(wú)論是軟件還是參考文獻(xiàn)庙洼,下載很慢或者很啰嗦的話是一件很不爽的事情。
迅雷下載應(yīng)該是不錯(cuò)的镊辕,而且是會(huì)員油够,網(wǎng)絡(luò)帶寬有保障,應(yīng)該沒有什么問(wèn)題征懈,但是石咬,新版本有很多限制,讓人很不舒服卖哎。而且鬼悠,即便是會(huì)員,有些下載內(nèi)容就是莫名其妙的龜速亏娜。
網(wǎng)上推薦安裝 Aria2焕窝。也是這個(gè)安裝還是需要有些折騰。具體安裝方法可以參考一下 https://yalv.me/aria2/ 维贺。
安裝好了 Aria2 以后它掂,在使用過(guò)程中發(fā)現(xiàn), 其實(shí) Aria2 也不是萬(wàn)能的溯泣,也不一定速度就快虐秋,還是要看具體情況榕茧。
不過(guò)有了迅雷下載和 Aria2,下載應(yīng)該好得多客给。
4 參考資料和源代碼下載和管理
我的體會(huì)是學(xué)習(xí)語(yǔ)言的最好辦法其實(shí)就是找一本適合你學(xué)習(xí)的編程書用押,這本編程書又要有大量的源代碼可以讓你理解書上講過(guò)的內(nèi)容。于是你就得需要在下載的電子書里慢慢去找起愈,然后參考網(wǎng)上的介紹文章作者的推薦只恨。
下載的內(nèi)容多了需要進(jìn)行管理。
于是抬虽,開始解決網(wǎng)絡(luò)電子文件的管理問(wèn)題官觅。按照網(wǎng)絡(luò)上的推薦,安裝了 DENOVthing Pro 和 Zotero阐污。使用后發(fā)現(xiàn)休涤,二者各有長(zhǎng)短。
DENOVthing Pro 比較復(fù)雜笛辟,而我只要存儲(chǔ)網(wǎng)頁(yè)上的相關(guān)頁(yè)面就可以了功氨。用不了這么多功能。但是從瀏覽器上點(diǎn)擊插件手幢,就可以方便地將文件轉(zhuǎn)到DENOVthing Pro 捷凄,這點(diǎn)就足夠吸引我使用了。
Zotero主要是存儲(chǔ)空間不夠围来,缺省狀態(tài)下跺涤,下載的電子書都存在Storage的子目錄下。網(wǎng)上介紹可以在Storage存儲(chǔ)文件的鏈接监透,而把文件存在網(wǎng)盤的目錄下桶错。但是折騰了好久都沒法實(shí)現(xiàn)。
通過(guò)一段時(shí)間的摸索胀蛮,最終按照 DENOVthing Pro 按照內(nèi)容進(jìn)行分類院刁,用來(lái)管理網(wǎng)上的文章。
而 Zotero 用來(lái)管理電子書籍粪狼,把下載的電子書(主要是PDF格式)放在網(wǎng)絡(luò)的云盤對(duì)應(yīng)的目錄下退腥,在 Zotero 中只設(shè)置電子書的鏈接。這樣Zotero 就不存儲(chǔ)電子書再榄,只保管電子書相應(yīng)的鏈接狡刘。但是,實(shí)際使用的效果是一樣的不跟。
5 找一本合適的入門書
有了電子書颓帝,進(jìn)行快速瀏覽后,最后選擇了廖雪峰的 《Python 3 基礎(chǔ)教程》比較適合自己學(xué)習(xí)。廖雪峰也有相應(yīng)的 《Python 2 基礎(chǔ)教程》购城。從發(fā)展的角度吕座,總是要使用高版本吧,所以就選了Python 3 瘪板。這本書把 Python 基本的要點(diǎn)都涉及了吴趴,講的很清楚。而且還有配套的源代碼侮攀。這樣锣枝,在看書的同時(shí),運(yùn)行相應(yīng)的源代碼兰英,效果很好撇叁。
順便說(shuō)一下電子書的版本和使用。
參考的電子文檔有好多格式:doc畦贸、pdf陨闹、txt、mobi薄坏、azw3趋厉、epub。doc用Word打開胶坠,txt用Mac自帶的“文本編輯”打開君账,mobi 和 azw3 用Kindle打開,epub用ibook打開沈善。
點(diǎn)擊 epub 文章乡数,便攜機(jī)安裝的ibook打開后,就會(huì)加入到其中的“圖書館”矮瘟,這樣瞳脓,在你的iPhone或者iPad的ibook中也有了這本書塑娇,條件是都使用同樣的Apple id澈侠。
點(diǎn)擊 mobi 或者 azw3 文章,便攜機(jī)安裝的Kindle軟件打開后埋酬,也會(huì)加入到其中的“圖書館”哨啃,這樣,在你的實(shí)體的Kindle中也有了這本書写妥,條件是都使用相同的賬戶登錄拳球。這樣做的好處是,不需要用usb線連接便攜機(jī)珍特,把文檔傳入實(shí)體kindle中去祝峻。但是PDF文件似乎不能這樣做。
下載的大多數(shù)電子書用pdf格式,用 skim 可以選擇其中的文字或者代碼段莱找。當(dāng)然酬姆,掃描版的pdf是無(wú)法這樣做的。所以奥溺,安裝打開電子文檔的軟件就用 skim 了辞色。
6 使用Git和GitHub版本管理
有了源代碼,并且對(duì)源代碼進(jìn)行修改浮定,就勢(shì)必涉及對(duì)代碼進(jìn)行版本管理相满,于是就轉(zhuǎn)向研究 GitHub 和 Git。
先前也打開過(guò) GitHub桦卒,總是一頭霧水立美。這次,在上面注冊(cè)了方灾,然后再仔細(xì)地慢慢地研究悯辙,也就逐漸熟悉了。
然后就是學(xué)習(xí)Git迎吵。
學(xué)習(xí) Git 折騰了一段時(shí)間躲撰。其實(shí),關(guān)鍵還是要搞清楚工作區(qū)(Working direction)击费、暫存區(qū)(Staging Aera)拢蛋、倉(cāng)庫(kù)區(qū)(Respository)和遠(yuǎn)程倉(cāng)庫(kù)(Remote)的概念和關(guān)系。
在自己的工作目錄(其實(shí)就是工作區(qū))下運(yùn)行
Git init
就創(chuàng)建了.git的隱藏子目錄(其實(shí)就是暫存區(qū))蔫巩,使用
git add 文件名
就是把指定的文件存到暫存區(qū)谆棱,再用
git commit -m “遞交說(shuō)明”
的命令把存入的文件送到倉(cāng)庫(kù)區(qū)。用
git status
檢查文件是否修改圆仔,用
git diff 文件名
的命令檢查文件修改的內(nèi)容垃瞧。檢查版本修改的歷史用
git log (--petty = oneline) 版本id。
在GitHub注冊(cè)后坪郭,需要在上面建立遠(yuǎn)程倉(cāng)庫(kù)个从。然后使用
git remote add origin 位置
將本地的倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián)。這樣就可以將本地倉(cāng)庫(kù)區(qū)的內(nèi)容推送到遠(yuǎn)程庫(kù)歪沃。
第一次推送使用
git push -u origin master
以后推送使用
git push origin master
用
git remote (-v)
的命令檢查遠(yuǎn)程倉(cāng)庫(kù)嗦锐。
因?yàn)槭亲约貉芯繉W(xué)習(xí),不涉及到團(tuán)隊(duì)的版本更新沪曙,所以其他的內(nèi)容可以暫時(shí)放一下奕污。
需要注意的是,工作目錄最好保持固定液走,如果移動(dòng)了碳默,重新建立本地倉(cāng)庫(kù)與遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián)不是說(shuō)不可能贾陷,只是有麻煩。
為了獲得《Python 3 基礎(chǔ)教程》對(duì)應(yīng)的源代碼嘱根,先搜索 “l(fā)earn-python3”昵宇,然后使用
git clone “鏈接”
命令下載到自己的工作目錄。
6 Python的編程環(huán)境選項(xiàng)
到現(xiàn)在為止儿子,下載了相關(guān)的書瓦哎,在其中找到了適合自己學(xué)習(xí)的一本書。并且找到了和這本書相應(yīng)的源代碼柔逼。
萬(wàn)事俱備蒋譬,就等著開工了!
但是接下來(lái)的任務(wù)才是正題:搭建Python源代碼運(yùn)行的環(huán)境愉适。所謂搭建運(yùn)行環(huán)境犯助,就是選擇安裝Python編程環(huán)境軟件了。
按照網(wǎng)上介紹维咸,可供選擇的方案有PyCharm剂买、SubLime text 3、VSCode癌蓖。還有一種辦法是 使用 jupyter notebook 瞬哼,的確有時(shí)候還真的需要這樣的環(huán)境。當(dāng)然租副,采用 shell 也是一種選項(xiàng)坐慰,只是不去考慮罷了。
先安裝了PyCharm用僧。安裝后结胀,其實(shí)就可以使用了Python 2.7了。
但是责循,有選項(xiàng)的話糟港,總得選擇一下自己喜歡的。麻煩就在選擇的過(guò)程院仿,其實(shí)是非常折騰的秸抚。記下來(lái)既是給自己一個(gè)記錄,以免日后遺忘意蛀,也是分享給需要的人耸别,避免走彎路健芭。
7. Anaconda Navigator 安裝
其實(shí)县钥,在Python的編程環(huán)境選擇過(guò)程中,有過(guò)很多摸索慈迈,有時(shí)一個(gè)問(wèn)題搞不定若贮,就只能找相關(guān)資料省有。EZ發(fā)現(xiàn)我在這一過(guò)程中似乎有些沮喪,就提供了我一條線索谴麦,說(shuō)是安裝 Anaconda Navigator 后蠢沿,自帶了一個(gè)編輯器。安裝后匾效,發(fā)現(xiàn)編輯器是Spyder 3 舷蟀。其實(shí)好好使用還是不錯(cuò)的,可是面哼,在試用SubLime text 3野宜、VSCode過(guò)程中,已經(jīng)被這些應(yīng)用的所謂“顏值”毒害了魔策,感覺一點(diǎn)都不喜歡匈子。但是安裝Anaconda Navigator 過(guò)程中,安裝了Anaconda的2.7版本和3.6版本闯袒。不曾想在SubLime text 3虎敦、VSCode 居然都可以調(diào)用。所以轉(zhuǎn)回來(lái)繼續(xù)研究SubLime text 3政敢、VSCode其徙。
8. SubLime text 3 安裝
關(guān)于SubLime text 3的安裝,網(wǎng)上介紹很多喷户,而且都推薦增加很多包擂橘。回過(guò)頭來(lái)看摩骨,其實(shí)關(guān)鍵是可以運(yùn)行通贞。在運(yùn)行上折騰了很久,很多情況下是安裝了太多的包恼五,這些包究竟有什么用途昌罩,包和包之間會(huì)不會(huì)有沖突,都不清楚灾馒。一度甚至連 Command+b 都不起作用茎用,這樣程序就無(wú)法執(zhí)行,更不要說(shuō)在交互環(huán)境下睬罗,需要輸入 “input”的內(nèi)容轨功。于是幾乎想放棄了。慢慢琢磨其實(shí)發(fā)現(xiàn)容达,只要少量的安裝包就可以了古涧,包括Package Control、Anaconda花盐、SublimeREPL羡滑、Python 3菇爪、ChineseLocalizitions。
Package Control是用來(lái)管理包的柒昏,必須裝凳宙;Anaconda 用來(lái)控制 2.7 和3.6版本;SublimeREPL 用來(lái) “input”交互問(wèn)題的职祷;Python 3用來(lái)運(yùn)行Python 3氏涩;ChineseLocalizitions 解決菜單漢化的問(wèn)題。照理說(shuō)沒有必要漢化菜單有梆,但是不裝 Command+b 不起作用削葱,這是一個(gè)奇怪的問(wèn)題。
SublimeREPL 安裝后使用有些麻煩淳梦,需要設(shè)置一個(gè)快捷鍵析砸,可以搜一下網(wǎng)上介紹的文章。我把快捷鍵設(shè)置到 Command+q爆袍,這樣沒有交互的情況使用Command+b首繁,有交互使用Command+q。自己感覺很方便陨囊。
總結(jié)一下安裝SubLime text 3的流程:
- 安裝SubLime text 3 并安裝注冊(cè)碼
- 安裝Package Control
- 利用Package Control安裝其他的包
- 設(shè)置SublimeREPL的快捷鍵
折騰了這么久弦疮,歸結(jié)成上面四條,也算是“刪繁就簡(jiǎn)”了蜘醋。
9. VS Code 安裝
VS Code 是微軟的產(chǎn)品胁塞。這是被網(wǎng)友評(píng)價(jià)為“顏值”最高的編輯器。按照“刪繁就簡(jiǎn)”的原則压语,留下的包啸罢,包括:Python、Python for VScode胎食、MagicPython扰才。運(yùn)行的方法也簡(jiǎn)單,在程序框里厕怜,鼠標(biāo)右鍵后衩匣,選擇“Run Python File in Terminal”就可以了。VS Code 自帶了git粥航,這是下一步需要研究的琅捏。
9. PyCharm 的使用
PyCharm是最早安裝的,但是一直不受待見递雀。其實(shí)柄延,PyCharm使用是最方便的。而且可以在 Mac 自帶的 Python 2.7.4映之、Anaconda的2.7和3.6 之間切換拦焚。使用其實(shí)非常方便蜡坊,打開工作目錄杠输,選中需要運(yùn)行的程序赎败,右鍵選擇“run”。如果沒有交互而且程序沒有錯(cuò)誤蠢甲,程序就自動(dòng)執(zhí)行完畢僵刮,如果有交互,提示輸入鹦牛,然后執(zhí)行搞糕,非常流暢。如果Python版本不同曼追,在“Project interpreter”中選擇窍仰。
10. 結(jié)語(yǔ)
初始目標(biāo)是“選擇一本合適的教程和對(duì)應(yīng)的源代碼,在合適的編程環(huán)境下運(yùn)行”礼殊。經(jīng)過(guò)許多折騰驹吮,走了很多彎路,這個(gè)目標(biāo)總算達(dá)成晶伦。三個(gè)選項(xiàng)都能滿足要求碟狞,最讓人放心使用的還是pyCharm,至于 VS code 和 Sublime Text 3也是不錯(cuò)的選擇婚陪。打開教程族沃,在編程環(huán)境中打開相應(yīng)的源代碼,這樣的學(xué)習(xí)模式泌参,真的還是不錯(cuò)的脆淹。
初步學(xué)習(xí)后,試著編了一個(gè)小程序沽一,用來(lái)計(jì)算新股收益的未辆。輸入中簽的價(jià)格、中簽的股數(shù)和計(jì)算漲停板的天數(shù)锯玛,就可以計(jì)算逐天的漲幅咐柜、股價(jià)、累積漲幅攘残、累積收益拙友。
但是,這只是初步的歼郭。還有很多問(wèn)題需要解決:
- Python 的繼續(xù)深入學(xué)習(xí)
- 編程環(huán)境的設(shè)置和包的安裝
- 整合到環(huán)境中的git的使用
- 軟件庫(kù)的使用
- 爬蟲和量化的學(xué)習(xí)和使用
諸如此類遗契,還需要繼續(xù)“折騰”和學(xué)習(xí)。體會(huì)是
- “工欲善其事病曾、必先利其器”
- 有時(shí)候慢是為了后續(xù)的快
- 只有解決目標(biāo)所關(guān)聯(lián)的主要問(wèn)題牍蜂,才能達(dá)到初定的目標(biāo)
- 把非關(guān)鍵的問(wèn)題先放在一邊
- 刪繁就簡(jiǎn)
對(duì)那些毫無(wú)保留無(wú)私奉獻(xiàn)自己所學(xué)所得內(nèi)容的漾根、不曾見面的知識(shí)提供者,我總是懷著深深的敬意鲫竞。因?yàn)槟銈兊姆窒矸拢屛铱焖俚貙W(xué)到了不少?gòu)奈唇佑|到的新內(nèi)容,否則从绘,我會(huì)在探索的路上走得很慢寄疏,甚至?xí)咤e(cuò)方向。謝謝你們僵井,我的朋友陕截!
本文作者
2017.11.17 上海.風(fēng)雨夜
2017.11.28 編寫完成