講個說服我學 Python 的理由吧!

閱讀時間約 7 分鐘
Python 的優點與缺點
雖然不能說,每一個人都該學 Python。但對於那些沒學過程式語言、且不知道將來想走哪個資訊領域的初學者來說,Python 是這些人應該學的第一個語言,絕對當之無愧!
我個人認為,Python 有下列三個特點,造就它今日的地位:「語法簡單」、「工法完整」、「應用廣泛」。此外,Python 也有「執行緩慢」的缺點。我們將在這個小節,逐一討論 Python 的優缺點,作為您是否要學習 Python 的參考依據。

優點一:語法簡單

一個程式語言要受到初學者歡迎,端看它能在多短的時間內,帶給初學者「成就感」與「信心」。如果用「在螢幕上印出『Hello! World!』這串字」當成比賽題目,看使用 C、Java、Python 三種語言的程式師,可以率先達到目標。那麼 Python 一定是從按下碼表後,第一個達標的。
讓我們先看 C 語言。C 語言得寫出下面這段程式碼、存檔、拿著這個原始碼檔去編譯,才能在螢幕上印出「Hello! World!」:
接著來看 Java 語言。跟 C 語言很類似,得寫出下面這段程式碼,歷經「存檔、編譯、執行」三步驟後,在螢幕上印出「Hello! World!」字樣:
最後是 Python。Python 只要寫下面這段原始碼,直接按 Enter 鍵,不必存檔、不必編譯,就能直接執行,並印出「Hello! World!」字樣:
什麼?就一行?是的!就一行!聰明如您,如果想在螢幕上印出一串字,您會選擇 C?Java?還是 Python 呢?除此之外,Python 還有許多「別人寫十行,我只寫一行」這種「以一打十」的範例。這樣,您分辨得出來哪種語言的語法比較簡單了嗎?

優點二:工法完整

先說明把「工法」這個名詞用在這裡,是我擅自認為這兩個字比較能表達我想說的「意境」才用的,這個名詞並非資訊業界的流通用語。「工法」指的是撰寫程式的原則與方法。在各類程式語言中,常見的「工法」有三種:程序導向物件導向函數導向。大家不要被「XX 導向」什麼的嚇到了,我說個比喻您就會懂。就像一盤青江菜,您可以炒成浙式、川式、廣式三種。本質都是「炒青江菜」,但在作法與過程上,有些不同罷了。程序導向、物件導向、函數導向也是如此,都是能做出特定結果的程式寫作方法而已。
但不是任何語言,都能任意使用上述三種工法,還得該語言有支援某工法的「語法」才行。就像用「潛盾工法」在地底挖隧道,並不適用於任何地質,太鬆軟的地質只能用「明挖覆蓋法」直接破壞表面了。以常見的語言來說,C 語言只支援「程序導向」;Java 支援「程序導向」與「物件導向」,直到 Java 8 之後,才補上支援「函數導向」的語法;而 Python 很早就支援「程序導向」、「物件導向」、「函數導向」三種工法,所以學會 Python 後,學習任何其它語言都會快!就像有「學會西班牙語後,學法語、義大利語都會快」此一說法一樣。
正因 Python 支援的工法完整,學了 Python 之後學其它語言不會慢到哪裡去,所以各大專院校才會鼓吹初學者,把 Python 作為第一個程式語言。這也成為 Python 受到初學者歡迎的原因之一。

優點三:應用廣泛

Python 另一個受到初學者歡迎的原因,是它能以一種語言,用在網頁設計、手機 App 撰寫、遊戲程式設計、硬體自動控制、生物醫學、大數據…等領域。簡單一句話,就是「萬用語言」。這對還沒決定、或還不知道該走哪個領域的初學者來說,非常重要!沒有人想花大把時間學會一個語言後,發現自己喜歡的領域用的是另一種語言,又含著眼淚帶著微笑重頭去學的。
Python 能做到「萬用語言」的原因,莫過於他有豐富的「函式庫(Library)」。所謂「函式庫」,就是把別人事先寫好的一些好用 Python 程式打成一包,允許你直接取用,而不必學習這些程式背後的寫作原理。拿通俗一點的比喻,就像遊戲軟體內的「外掛」,直接使用後,可以讓你不必花力氣去打怪練功,就能取得高分或強力的裝備。
舉例來說,如果您想用 Python 寫個網站,那就加掛 Django 這個函式庫。裡面已經有「建立帳號」、「使用者登入」…等等寫好的功能讓你直接叫用,不必什麼都得自己重頭寫。想寫遊戲,就加掛 PyGame。什麼打光、旋轉、碰撞偵測…人家都幫你寫好了,寫個三行直接叫用就行了!還在頭痛想怎麼同時間學兩種程式語言,並且在 Android、iOS 雙平台寫手機 App 嗎?不必了!用 Python + Kivy 函式庫寫出來的手機 App,讓你能直上兩大平台!想做個自走車還是機械手臂來玩玩?沒問題!花個台幣一千多元買塊 Raspberry Pi 開發板,讓你用內建的 Python 函式庫控制 LED 燈、馬達…等各種硬體電路!其它如生醫領域的 DNA 序列研究、經濟領域的大數據,Python 都有對應的「外掛(函式庫)」供人直接取用。讓你吹著口哨、比別人提早抵達終點。

缺點:效能稍差

前面講了 Python 這麼多好話,它並不是完全沒有缺點。Python 雖然適用於各行各業,但它有個致命傷:慢!
其實這點並不難理解。假設您有把裡面有螺絲起子的瑞士刀,雖然它能拿來轉螺絲,但沒辦法像專業的螺絲起子做得長長的,發揮強大的力矩槓桿作用,讓螺絲轉起來輕鬆容易。更別提有人拿笨重、但迅速的專業電動螺絲起子了。
Python 也是如此!所謂「追二兔不得一兔」,為了能在各種場合都發揮作用,就得取各種場合的「平衡點」,沒辦法為單一情況做「最佳化」!正如那把瑞士刀,雖然它能做各種事情,但不可能如專業工具稱手。Python 的架構工程師,最後就做出「為了功能,犧牲效能」的決定。
不過最近幾年,也有 Python 同好開發出「Python 編譯器」,就是直接把 Python 原始碼,翻譯成 0 與 1 來表示的軟體。不過「編譯器」也不是萬靈丹!經過實際測試,編譯成二進位碼的 Python 某些時候跑得比 Java 還快,但某些場合又吊車尾。所以這完全看「Python 編譯器」的好壞。編譯得好,就跑得快;編譯得不好的部分,自然效能就差了點。
但有一派人士的說法:CPU 效能年年加快,Python 本身效能緩慢問題,應該能被新的 CPU 速度稍稍解決。所以我的看法,還是鼓勵初學者不用太在意「速度」這件事,先把你想寫的東西用 Python 寫出來比較要緊!畢竟「先求有,再求好」。如果將來「速度」真的成了致命傷,到時候再來想想如何加速就可以了!

結論:學 Python,應用廣,轉檯易!

所以,如果您是對自己比較沒信心,或是還沒決定走哪個領域的朋友,那就先學 Python!不但好學,而且將來想轉檯到其它語言也快!但若您已經確定自己有興趣的領域,比如「遊戲程式設計」,那我會建議您直接學該領域的專用語言比較好。以「遊戲程式設計」來說就是 C++。
至此,不知您是否對於該不該學 Python 語言,心中已經有答案了呢?
為什麼會看到廣告
3會員
4內容數
「程式語言也可以輕鬆閒聊!」做為一個學習程式設計 30 年的老骨頭,面對許多人學習程式的急迫與焦慮感,會希望大家放輕鬆!其實程式語言不過是與「電腦星人」日常對話的一種方法而已!期待大家透過這個專題,能一點一滴地解除防衛心,張開雙臂擁抱「電腦」這位新朋友!
留言0
查看全部
發表第一個留言支持創作者!
紀俊男的沙龍 的其他內容
不管您是好奇心重、去查了英文字典,還是英文程度不錯,本來就知道 Python 這個字是「蟒蛇」的意思。但根據 Python 之父 Guido van Rossum 所說,Python 這程式語言的名稱由來,其實跟「蟒蛇」一點關係都沒有...。
Python 從創立之初的沒沒無名,至今被譽為「初學者最佳語言」,在 Python  社群背後默默貢獻的「鄉民」們居功厥偉!讓我們來看一下 Python 那些年的歷歷往事。
不管您是好奇心重、去查了英文字典,還是英文程度不錯,本來就知道 Python 這個字是「蟒蛇」的意思。但根據 Python 之父 Guido van Rossum 所說,Python 這程式語言的名稱由來,其實跟「蟒蛇」一點關係都沒有...。
Python 從創立之初的沒沒無名,至今被譽為「初學者最佳語言」,在 Python  社群背後默默貢獻的「鄉民」們居功厥偉!讓我們來看一下 Python 那些年的歷歷往事。
你可能也想看
Google News 追蹤
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
我家客廳本身就有永佳樂,因為我覺得把手機螢幕顯示的東西放在電視上觀賞很棒,所以我很常在客廳使用永佳樂,但我媽每次下班回家都會叫我讓她看,我就一直跟她搶,他也一直跟我搶,我實在是覺得很困擾,我希望他能在我房間也安裝永佳樂,但她怎樣就是不肯,不知道是不是他太懶,或者我直接連絡安裝人員?我媽就會答應?總之
Thumbnail
如果台灣人出國遊玩或是留學都願意接受各種異國文化、跟外國人當朋友,為什麼在國內面對不同的族群反而做不到?能不能用包容的態度來接受多元的文化和生活方式的人,並自在地跟他們相處,那才是我心目中的「國際素養」⋯⋯
Thumbnail
封城鎖國下的一群羊 看過屍速列車,可以知道一大群人,狂搶的畫面,這個畫面開動到了,各個國家的大賣場,而這次是搶購衛生紙了。好奇怪:你只有一個屁屁,搶了一大堆衞生紙,有什麼用啦? 封城鎖國下的一群羊 有人問我,在台灣搶衛生紙,似乎已經變成一股反覆流行的風潮?我想一想:也是對啊!看到大家搶購熱潮,其實
Thumbnail
「我只想做這個、我只會做這個、我只適合做這個」,這些框架會把你框住,你永遠不知道自己錯過了哪些機會。雖然職場上也可能有別人幫你架設的天花板,但你幫自己設的天花板和別人給你的天花板,其實互為因果。
Thumbnail
「字」對女兒來說是語文教育,但對我來說是情感教育。隨著對「字」的認識不同,我們對待「字」的態度也很不一樣。
Thumbnail
 談面試順便談追女與倒追(誤) 之前寫了一篇產品經理與專案經理的職涯FAQ,得到不錯的迴響,很高興對大家有幫助。 產品經理與專案經理職涯FAQ 這篇文章想回答四個問題:產品經理和專案經理的不同、地位高
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
我家客廳本身就有永佳樂,因為我覺得把手機螢幕顯示的東西放在電視上觀賞很棒,所以我很常在客廳使用永佳樂,但我媽每次下班回家都會叫我讓她看,我就一直跟她搶,他也一直跟我搶,我實在是覺得很困擾,我希望他能在我房間也安裝永佳樂,但她怎樣就是不肯,不知道是不是他太懶,或者我直接連絡安裝人員?我媽就會答應?總之
Thumbnail
如果台灣人出國遊玩或是留學都願意接受各種異國文化、跟外國人當朋友,為什麼在國內面對不同的族群反而做不到?能不能用包容的態度來接受多元的文化和生活方式的人,並自在地跟他們相處,那才是我心目中的「國際素養」⋯⋯
Thumbnail
封城鎖國下的一群羊 看過屍速列車,可以知道一大群人,狂搶的畫面,這個畫面開動到了,各個國家的大賣場,而這次是搶購衛生紙了。好奇怪:你只有一個屁屁,搶了一大堆衞生紙,有什麼用啦? 封城鎖國下的一群羊 有人問我,在台灣搶衛生紙,似乎已經變成一股反覆流行的風潮?我想一想:也是對啊!看到大家搶購熱潮,其實
Thumbnail
「我只想做這個、我只會做這個、我只適合做這個」,這些框架會把你框住,你永遠不知道自己錯過了哪些機會。雖然職場上也可能有別人幫你架設的天花板,但你幫自己設的天花板和別人給你的天花板,其實互為因果。
Thumbnail
「字」對女兒來說是語文教育,但對我來說是情感教育。隨著對「字」的認識不同,我們對待「字」的態度也很不一樣。
Thumbnail
 談面試順便談追女與倒追(誤) 之前寫了一篇產品經理與專案經理的職涯FAQ,得到不錯的迴響,很高興對大家有幫助。 產品經理與專案經理職涯FAQ 這篇文章想回答四個問題:產品經理和專案經理的不同、地位高