讀古今文學網 > 萬萬沒想到:用理工科思維理解世界 > 第一百一十一章 Python 的十關,Matlab,數列百科全書 >

第一百一十一章 Python 的十關,Matlab,數列百科全書

今天繼續談論 Python. 通過這幾天的學習,我感到 Python 之所以強大,其簡潔的語法和方便的面向對像結構固然是一個原因,但更重要的是它有極其豐富的庫函數。

Python 從一開始就是開源的語言,網友共同開發,不屬於任何私人公司,可以說出身絕對是根正苗紅。可能正是因為這個原因,很多人樂於給 Python 貢獻各種庫函數。

這就好比 Firefox 一樣:我們離不開 Firefox, 這個瀏覽器本身性能當然也不錯,但更重要的是 Firefox 有各種開放的擴展 (Add-ons)。比如我最常用的 Firefox 擴展包括 Greasemonkey, Scrapbook 等等。這些擴展都是由第三方開發,而跟 Firefox 可能一點利益關係也沒有。現在 Google 開發了 Chrome, 也可能比 Firefox 性能更好,但我首先問的問題是你 Chrome 也有這麼多擴展麼?

有了這麼多庫函數之後,Python 就幾乎什麼都能幹了。在為了過第7關學習 Python 處理圖形的過程中,我發現了一個很不錯的畫圖函數庫,matplotlib:

https://matplotlib.sourceforge.net/

這個庫可以使用 Python 方便地畫達到出版標準的數據圖!我下載試用了一下,感到其在畫圖方面基本上可以取代 Matlab 了。

Python 用於科學計算的最重要函數庫應該是 NumPy,這個大名鼎鼎我就不必說了。

使用這些庫的一個另一個好處是這些庫大多是用 C 寫的,這就確保了他們的運算速度,而運算速度是 Python 最大的(也可能是惟一的)缺點。

幾天前,我說我想不出 Python 對我有什麼真正的用處,而現在我想到了很多用處。其實我可以在工作中用 Python 做很多實際事情!

我的 Python Challenge 過了10關,目前在第11關。第8到第10關非常簡單,有可能需要時不時搜索一下某些奇怪字符串的意思,但由於在第7關下了功夫學習圖形,這時候真正的編程都不需要很多的特別學習了。

過了一關之後可以看到這一關的答案。這些答案裡邊有時候會提供一些額外有用的信息。我得知了兩個重要的網站:

- https://www.amiga-stuff.com/crunchers-id.html

這個網頁提供各種文件格式的開頭字符。這樣如果我們以後看到一個奇怪的文件,也許可以用這個東西查到這是什麼文件。不過也許 Linux 下的 file 命令完全可以做同樣的事清。

- 「數列百科全書」:

https://www.research.att.com/~njas/sequences/index.html

以後再有人考你」已知一個數列的前幾項是…,請問他的下一項是什麼?」 這種問題,你所要做的就是把那前幾項輸入這個百科全書查找。它包含所有的著名數列。