2015/06/26

QAs for Python Beginners

學習 Python 前,你可能會遇到下列的疑問,對於這些問題,你心裡的答案是什麼呢?

這裡未必提供完整精準的解析,但希望有助於帶你看到學習程式語言的新觀點。

要懂物件導向才能學習 Python 嗎?

在 Python 中,每個東西都是物件,但,不代表你必須使用物件導向作為 Python 的主要典範,舉例來說,有人仿照 Functional Programming 典範來使用 Python。不懂物件導向觀念,不致於成為學習的阻礙,當然,具備物件導向的觀念,有助於進階議題的學習。

Python 是 Script 語言,執行效率一定比較慢囉?

善用內建函式和內建型別的情況下,Python 的效能並沒有比編譯式語言來得差。常見的建議是,等到程式架構穩定之後,再決定是否要處理效能問題,以及採取怎樣的處理方式。參考下列文件:

  • http://www.python.org/doc/essays/comparisons/
  • http://www.infoworld.com/article/2619428/python/van-rossum--python-is-not-too-slow.html
  • http://www.monitis.com/blog/2012/02/13/python-performance-tips-part-1

Python 的中文書籍很少,需要具備足夠英文程度才能學習嗎?

編寫品質良好的中文程式書籍,是極度吃力不討好的工作,結果就是,我們在市面上很難找到好的中文書。英文書的種類和數量,相對就多些。 想要自學的朋友,先選擇好的英文書和線上文件外,聰明的作法,就是參加同好聚會,線上和實體課程。

需要選好 IDE 才能開始 Python 編程嗎?

Python 世界裡存在許多 IDE 編輯器,免費或付費版本都有,各有愛用者。不少人使用 Vim 或 Sublime Text 就覺得夠用,所以,沒有 IDE 無法編程,對 Python 肯定是不成立的。

Python 的變數不用事先宣告型態,容易造成程式產生難以預期的錯誤或漏洞?

Python 是 Dynamic Typing 語言,使用變數時,不像 C 或 Java 需要事先宣告資料型態。Python 雖然有 Private 變數,但不像一般程式語言那樣具有強制力。通常會利用 Testing 來降低資料型態不明可能造成的問題,另一方面,也利用 Duck Typing 特性來避免資料型態檢查的需要。