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

更新於 發佈於 閱讀時間約 8 分鐘
raw-image

雖然不能說,每一個人都該學 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 語言,心中已經有答案了呢?


留言
avatar-img
留言分享你的想法!
avatar-img
紀俊男的沙龍
2會員
4內容數
「程式語言也可以輕鬆閒聊!」做為一個學習程式設計 30 年的老骨頭,面對許多人學習程式的急迫與焦慮感,會希望大家放輕鬆!其實程式語言不過是與「電腦星人」日常對話的一種方法而已!期待大家透過這個專題,能一點一滴地解除防衛心,張開雙臂擁抱「電腦」這位新朋友!
紀俊男的沙龍的其他內容
2019/10/28
當您寫了一段 Python 的原始程式碼按下 Enter 鍵執行出結果後,您是否會好奇您寫的程式是如何被電腦認識且執行的呢?畢竟電腦只認得 0 與  1 兩個符號,而您寫的 Python 程式是英文字母組成的。這中間是如何從英文字母,轉換成 0 與 1 的呢?
Thumbnail
2019/10/28
當您寫了一段 Python 的原始程式碼按下 Enter 鍵執行出結果後,您是否會好奇您寫的程式是如何被電腦認識且執行的呢?畢竟電腦只認得 0 與  1 兩個符號,而您寫的 Python 程式是英文字母組成的。這中間是如何從英文字母,轉換成 0 與 1 的呢?
Thumbnail
2019/10/26
不管您是好奇心重、去查了英文字典,還是英文程度不錯,本來就知道 Python 這個字是「蟒蛇」的意思。但根據 Python 之父 Guido van Rossum 所說,Python 這程式語言的名稱由來,其實跟「蟒蛇」一點關係都沒有...。
Thumbnail
2019/10/26
不管您是好奇心重、去查了英文字典,還是英文程度不錯,本來就知道 Python 這個字是「蟒蛇」的意思。但根據 Python 之父 Guido van Rossum 所說,Python 這程式語言的名稱由來,其實跟「蟒蛇」一點關係都沒有...。
Thumbnail
2019/10/25
Python 從創立之初的沒沒無名,至今被譽為「初學者最佳語言」,在 Python  社群背後默默貢獻的「鄉民」們居功厥偉!讓我們來看一下 Python 那些年的歷歷往事。
Thumbnail
2019/10/25
Python 從創立之初的沒沒無名,至今被譽為「初學者最佳語言」,在 Python  社群背後默默貢獻的「鄉民」們居功厥偉!讓我們來看一下 Python 那些年的歷歷往事。
Thumbnail
看更多
你可能也想看
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
Python 是一種非常優秀的程式語言,但它是否是「最好」的語言,取決於具體的使用場景和需求。 以下是 Python 的優勢與限制: Python 的優勢 1. 簡潔易學 • 語法接近自然語言,適合初學者,能快速上手並實現想法。 • 程式碼可讀性高,減少了開發和維護成本。 2. 豐
Thumbnail
Python 是一種非常優秀的程式語言,但它是否是「最好」的語言,取決於具體的使用場景和需求。 以下是 Python 的優勢與限制: Python 的優勢 1. 簡潔易學 • 語法接近自然語言,適合初學者,能快速上手並實現想法。 • 程式碼可讀性高,減少了開發和維護成本。 2. 豐
Thumbnail
為什麼要學Python? 我回不去了 全球工程師都在用! 根據 TIOBE調查 全球程式語言使用排名,Python連續好幾年第一名,代表最多人使用,選擇程式語言當然是要選最多人用的。 程式語言趨勢圖 Python可以做什麼? 這種事情問ChatGTP就好XD
Thumbnail
為什麼要學Python? 我回不去了 全球工程師都在用! 根據 TIOBE調查 全球程式語言使用排名,Python連續好幾年第一名,代表最多人使用,選擇程式語言當然是要選最多人用的。 程式語言趨勢圖 Python可以做什麼? 這種事情問ChatGTP就好XD
Thumbnail
Python是一款多功能且易於學習的程式語言,廣泛用於Web開發、數據分析和人工智能。學習起來有其挑戰性,但初學者可在短時間內體驗到成就感。市場對Python需求旺盛,成為職場上的重要技能。我們的課程提供從Python到PHP的全面學習,並重點教授實戰技巧如爬蟲和資料視覺化。現是投身編程的絕佳時機。
Thumbnail
Python是一款多功能且易於學習的程式語言,廣泛用於Web開發、數據分析和人工智能。學習起來有其挑戰性,但初學者可在短時間內體驗到成就感。市場對Python需求旺盛,成為職場上的重要技能。我們的課程提供從Python到PHP的全面學習,並重點教授實戰技巧如爬蟲和資料視覺化。現是投身編程的絕佳時機。
Thumbnail
千里之行始于足下。 大家好,我是茶桁,这里是我们《AI秘籍》的第一节,让我们先从Python来开始好好的打好基础。 第一堂课,我们先从最基础的Python特性开始,当然,还有一些基本语法。 上来就开始讲特性和语法,说明我们将会遗弃惯用的“环境搭建”等更基础的内容,那些内容网上已经很丰富了,一查
Thumbnail
千里之行始于足下。 大家好,我是茶桁,这里是我们《AI秘籍》的第一节,让我们先从Python来开始好好的打好基础。 第一堂课,我们先从最基础的Python特性开始,当然,还有一些基本语法。 上来就开始讲特性和语法,说明我们将会遗弃惯用的“环境搭建”等更基础的内容,那些内容网上已经很丰富了,一查
Thumbnail
在決定踏上程式之旅後,身為程式初學者,你要面臨的第一個關卡,絕對是: 我該學習哪種程式語言?
Thumbnail
在決定踏上程式之旅後,身為程式初學者,你要面臨的第一個關卡,絕對是: 我該學習哪種程式語言?
Thumbnail
在科技快速發展的現代,每個人都滿口大數據、人工智慧,。而大學的資工系也變得越來越熱門,學習程式也逐漸成為許多人考慮的事情。 在這篇文章,我會分享如何從零基礎開始學程式,給讀者開始的方向、避免你走冤枉路。
Thumbnail
在科技快速發展的現代,每個人都滿口大數據、人工智慧,。而大學的資工系也變得越來越熱門,學習程式也逐漸成為許多人考慮的事情。 在這篇文章,我會分享如何從零基礎開始學程式,給讀者開始的方向、避免你走冤枉路。
Thumbnail
剛開始學一個新的語言,第一個面臨的問題就是,需要先學習架設程式語言的環境。為了避免架設環境而降低學習的熱情,我們可以先使用 Repl.it 協助我們先練習Python 的基本語法。
Thumbnail
剛開始學一個新的語言,第一個面臨的問題就是,需要先學習架設程式語言的環境。為了避免架設環境而降低學習的熱情,我們可以先使用 Repl.it 協助我們先練習Python 的基本語法。
Thumbnail
常見入門款Python、統計分析用R、轉職培訓JAVA、C#、IOS用Swift、前端萬用JavaScript、學校基礎C語言、進階C++、甚至是新潮的語言go,程式語言那麼多種到底該從哪個入門好?難道從Scratch開始?
Thumbnail
常見入門款Python、統計分析用R、轉職培訓JAVA、C#、IOS用Swift、前端萬用JavaScript、學校基礎C語言、進階C++、甚至是新潮的語言go,程式語言那麼多種到底該從哪個入門好?難道從Scratch開始?
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News