2018年9月1日 星期六

工欲善其事必先利其器:用什麼寫​Python​?




文章摘要: 通常來說,每個程式設計師都有自己趁手的兵器:程式碼編輯器。你要是讓他換個開發環境,恐怕開發效率至少下降三成。然而,每個人對編輯器的喜好各不相同,甚至引發出諸如「神的編輯器」與「編輯器之神」這種信仰之爭。但也正由此可見,個性化的編輯器對於一個程式設計師的重要性。



本文轉自:Crossin的程式設計教室(已獲授權)


通常來說,每個程式設計師都有自己趁手的兵器:程式碼編輯器。你要是讓他換個開發環境,恐怕開發效率至少下降三成。然而,每個人對編輯器的喜好各不相同,甚至引發出諸如「神的編輯器」與「編輯器之神」這種信仰之爭。但也正由此可見,個性化的編輯器對於一個程式設計師的重要性。


對程式設計新手來說,開發環境的選擇常常成為入門後的第一道坎。因為搗鼓了半天沒能成功執行程式碼而被迫從入門到放棄的情景並不少見。初上手時選擇的編輯器是否易用也會直接影響你的學習熱情。



今天就來講講我對 Python 編輯器的經驗。


我們用來寫 Python 的工具有兩類:


一種是被稱為 IDE整合開發環境,它們為開發而生。如 IDLE、PyCharm、Spyder 等。


另一種更像是文字編輯器,只不過比較強大,可以支援編寫和執行程式碼。如 SublimeText、Emacs、Vim 等。在此我主要介紹下我個人平常用的幾款。


1. IDLE



講真,再怎麼降低標準,IDLE 恐怕也算不上一個「好」的編輯器。不論是自動補全、語法提示,還是專案檔案管理,甚至是高亮提示,它要麼不支援,要麼支援得很勉強。「使用者體驗」基本沒有,更要命的是,經常在某些系統或某些版本下無法執行或無法輸入。


但沒辦法,人是親兒子啊!安裝完 Python 什麼配置都不用做(甚至不用理會環境變數),就可以用它來編寫和執行程式碼了。對一個沒什麼計算機基礎的新人來說,還要啥自行車要啥手錶呢?直接寫就完啦!


所以在我的零基礎教程,以及其他不少入門級教程裡,都把 IDLE 當做了一開始的演示開發環境。但我不得不強調下,IDLE 僅僅是程式設計世界的敲門磚,它讓你快速上手,但不可能陪你走下去。儘早去尋找屬於你的工具吧。


2. SublimeText



Sublime 是一個功能豐富的文字編輯器。除了寫 Python 外,我也會拿它寫一寫其他程式碼如 JS、HTML、CSS,並且它也是我日常使用的記事本和文字編輯器。你們看到的大多數微信推送文章,最初的草稿都是是用 Sublime 寫成的。


預設安裝後,如果你的電腦上已裝好 Python,Sublime 就可以執行 .py 檔案,並且具有語法提示、補全的功能。不支援更復雜的語法檢查,也不支援控制檯輸入(input),但可以通過安裝額外外掛來補充功能。如果你電腦上有多個版本的 Python,選擇起來也稍複雜。因此我常年開啟著 Sublime,寫一些程式碼片段,或者稽覈學員提交的作業時使用。



Sublime 是收費軟體,但可以免費使用。


3. PyCharm



這是我在課程中和答疑群裡主要推薦的開發工具。除了一開始配置可能會遇到點麻煩,以及啟動時間略慢以外,真的是很好用。PyCharm 在專案內部提供了對編碼、第三方庫的管理,形成一個小的沙盒,避免系統中其他的配置對開發環境造成的干擾,讓新手少踩點坑。不過有點不幸的是:如果你沒有按照它設想的那樣配置好,有可能因此踩到新的坑。


我個人用 PyCharm 做的開發主要是課程和演示專案。如果你在使用其他編輯器時遇到問題,不妨同我的例子保持一致試試,減少不必要的折騰。


PyCharm 也是收費軟體,但有免費的社羣版和教育版(需申請)。我用的就是社羣版,功能足夠學習了。如果你一定需要漢化版或者專業版,可自行網上搜索。


4. IPython



IPython 是一個互動式的開發環境,也就是我們課程一開始用過的 Python Shell 的加強版。通過 pip install ipython 即可安裝。主要是增加了自動補全和歷史命令記錄,語法高亮也看著舒服點。但新手可能不太會用到。如果你到了上伺服器執行程式碼的階段,那一定得裝一個。


同 Sublime 一樣,IPython 我也一直開著。因為互動式的環境很適合除錯幾句代碼,測試一下某個語法的特性,看看某個模組裡方法的呼叫,甚至用 help 命令去看文件。看過我答疑的同學也知道,我經常是針對問題在 IPython 裡執行一段程式碼貼過去。我強烈建議大家養成執行程式碼的習慣,尤其是在你看書看教程的時候,不要光顧著看,一定把編輯器開著隨時敲一敲程式碼跑一跑。很多問題通過幾次嘗試自然就領會了。


5. Jupyter




也就是 IPython Notebook。它相當於是把上面提到的 IPython 做成了網頁版,但又不僅僅是網頁版。


我之前很少用,但最近有點愛上它:因為用它來寫爬蟲或資料分析實在太舒服了!寫爬蟲的時候免不了反覆嘗試,有了互動式的 Jupyter,你可以步步為營,逐步修正你的程式碼,而不用每次都從頭抓。資料分析則是因為它和 matplotlib 以及 echarts 都結合得很好,無需彈窗,頁面上直接顯示繪圖結果。


對於想深入資料分析的同學,拿一本利用 Python 進行資料分析,再就著一個開著的 Jupyter 頁面,一個個例子去玩吧。


另外,因為是網頁版的,所以如果你有伺服器的話,甚至可以用它做一個隨時隨地寫程式碼的線上版 Python 工具。不過自己用用就好,千萬不要直接對外公佈,它會把你的伺服器環境暴露在外。


6.Emacs



終於來了,神的編輯器。


這是多年開發的老習慣。你們看到的程式設計教室網站就是在 Emacs 上寫成的。但這個門檻較高,也不存在推薦了,大家看看就好。



爲了用 Emacs 我都改了自己的鍵位。最近手指有點疼,考慮是不是再加個腳踏板


以上是我常用的編輯器。算是有點分裂,不過確實各有各的優勢。所以沒必要爭論哪個更好,按自己的需要選擇用著順手的就好。


對於初學,我還是建議用 PyCharm,功能比較完善,各方面相對均衡。


而其他還有不少優秀的編輯器,如 VSCode、Atom、Vim、Spyder 等(不推薦 PyScripter),因我自己並無長期使用經驗,就不搬運網上的介紹了。如果你在使用或者有興趣,搜尋下會有很多教程。有推薦的歡迎留言。但僅我上述提及的幾個其實也足夠用了。


正如標題所說:工欲善其事,必先利其器。選個好的編輯器,學習效率大增,起碼像少半個括號少半個引號這種錯誤就不太會出現了。


不過最終嘛,工具還是看誰來用。只要你寫得夠多,記事本也能成就大牛。(但認真地說:如果你還不是大牛,任何開發相關的事情都不要用 Windows 自帶的記事本!)



Crossin的程式設計教室專注於Python程式設計已有5年,淺顯易懂的零基礎教程累計讓數萬名學習者邁入程式設計世界的大門。加入程式設計教室,一起在程式設計世界的新手村裏練級成長!


ID:crossincode


【END】





http://www.buzzfunnews.com/20180928122.html

更多有趣新聞請上:http://www.buzzfunnews.com

沒有留言:

張貼留言