iT邦幫忙

2021 iThome 鐵人賽

DAY 2
2
Software Development

從 JavaScript 角度學 Python系列 第 2

從 JavaScript 角度學 Python(2) - 歷史

前言

每個程式語言都有屬於它獨一無二的誕生故事,畢竟以 JavaScript 的歷史背景來講是還滿有趣的(狗與熱狗的故事),那 Python 呢?Python 也跟 JavaScript 一樣有趣嗎?所以這一篇會先針對 Python 的歷史背景稍稍的了解一下。

Python 歷史

Python 中文又稱之為蟒蛇,雖然 Python 本身代表的動物就是蟒蛇,但是絕對不是要講這一隻蟒蛇的歷史啦!

https://ithelp.ithome.com.tw/upload/images/20210903/20119486pGLnmIUyPH.jpg

畢竟我們不是 Discovery 鐵人賽而是 iT 邦幫忙鐵人賽,所以今天要講的是程式語言的 Python 歷史 * n 次(很重要),絕對不是講蟒蛇的歷史 (除非你真的很想知道蟒蛇,那就另當別論)

https://ithelp.ithome.com.tw/upload/images/20210903/20119486SvXygkYHeB.png

而 Python 誕生的時間其實滿早的,與 JavaScript 相較之下 Python 至少就早了約 3 年左右的時間。

(JavaScript 於 1994 面市,而 Python 則是 1991 年。額外提一下 JavaScript 的啟發語言其中之一就是 Python)

而 Python 的設計者是 Guido van Rossum (吉多·范羅蘇姆),誕生的原因我大概查了一下資料有兩種說法:

  • 打發時間
  • 覺得當時的語言不好用

另外 Python 這個名稱的由來是因為 Guido van Rossum 是蒙提·派森的飛行馬戲團(Monty Python's Flying Circus)愛好者,所以就取名為 Python

https://ithelp.ithome.com.tw/upload/images/20210903/20119486qJFw6UcDFk.jpg

484 完全沒想到呢?之所以會命名為 Python 純粹只是因為作者喜歡這個喜劇團體,在維基百科上你也可以看到 這個 解釋

Python 特色

如果你本身已經有學過、聽過、碰過、摸過、楊過,不管你是什麼過,應該很常聽到人家說 Python 這兩件事情:

  • 語法簡潔易懂
  • 很好學

基本上你會聽到這兩件事情的原因是 Python 本身的設計中心理念就是為了簡潔且可讀性高,因此對於入門初學者來講確實是比較好入門學習的,所以應該不至於會有人貼這張圖給你:

https://ithelp.ithome.com.tw/upload/images/20210903/2011948655ZdrzQwUW.jpg

(不得不說,我一開始真的以為只有 C、Java、C# 等等從入門到放棄的梗圖版本,沒想到連 Python 都有呢!)

除此之外 Python 的語言背景上比較沒有像 JavaScript 一樣那麼戲劇化,如果你是一名前端開發者,那麼應該很常被問 Java 跟 JavaScript 的差異,甚至有人會搞不清楚 Java 跟 JavaScript 之前到底有何關係(如同熱狗跟狗),所以你也有可能看到不清楚的人會在應徵職缺上寫要找「JAVA script」工程師(笑,你到底是要找 Java 工程師,還是 JavaScript 工程師啦~~~)。

那麼 Python 在維基百科上也有特別提到它的設計理念,下面摘自維基百科:

優美優於醜陋。明瞭優於隱晦。
簡單優於複雜。複雜優於凌亂。
扁平優於巢狀。稀疏優於稠密。
可讀性很重要。

前面也有講到因為 Python 相當易學的關係,因此滿多線上課程以及學校都會推薦當作第一個學習語言。

但是強者我朋友推薦我學習的第一個程式語言剛剛好就是 C 語言(真的是從入門到放棄 QQ)

https://ithelp.ithome.com.tw/upload/images/20210903/20119486Zg2Z2aolxZ.jpg

回歸正題,看到這邊你可能會疑惑了一件事情:「Python 可以拿來做什麼?」

基本上 Python 可以做的事情非常非常的多,舉凡比較有名的網頁爬蟲之外、數據分析以及網站開發也是可以的,舉例來講現在較知名的 Instagram 就是使用了 Django 框架開發(使用 Python 所撰寫的 Web 框架)。

當然你也有可能聽到人家說 Python 效能很差的問題,而這個原因主要與它的語言特性有關,畢竟它是一個動態語言,就跟 JavaScript 一樣必須在程式碼執行時才能夠知道變數的型別,可是實際上我們使用 Instagram 那麼久,卻也感受不太到 Lag (卡、頓)的問題,因此我覺得這不是一個問題點,除此之外我自己認為這不是一個拒絕學習任何程式語言該考慮的重點,如果學了這個程式語言之後可以替自己 加薪 或者解決工作上許多的問題,那麼多學一個程式語言還是利大於弊的。

oh,對了!

差點忘記補充這件事情,補充一下為什麼會推薦學習 Python。

主要原因是「不會禿頭」。(誤)

Python

那 JavaScript 之父呢?

JavaScript

搶先體驗 Python 簡潔的語法

那麼由於後面章節開始會慢慢陸續撰寫 Python,所以這邊先簡單看一下 Python 會有多簡潔。

下面會有一段非常簡易的 JavaScript 的程式碼與 Python 程式碼,讓你簡單相互比較了解一下彼此差異與特色:

// JavaScript
var myName = 'Ray';

function callName() {
  if(true) {
    console.log('myName', myName);
  }
}

callName();
# Python
myName = 'Ray'

def callName():
  if True:
    print('myName', myName)

callName()

可以看到少了許多東西,舉凡變數宣告、花括號({})等等,而且 Python 主要是以縮排為主,如果你寫過 Pug(HTML Template)、Sass(CSS 預處理)的話,應該會格外熟悉,因為這兩個工具都是非常仰賴縮排,除此之外對於縮排也會非常嚴格,稍微少縮一排多縮一排都會直接噴錯唷~

那麼這一篇主要是簡單閒聊與了解關於 Python 的歷史,下一篇我們就來介紹一下如何安裝 Python 吧。

參考文獻

作者的話

因為紅龍雞塊需要放在冷凍庫,但是很尷尬的是紅龍雞塊竟然!!!!有三大包,然後我冰箱因為比較偏小,所以只好硬塞進去,結果因為家人開關冰箱時沒有關好,導致隔天早上起來冰箱附近都是積水,只是好加在冰箱的東西都沒有壞掉。

關於兔兔們

兔法無邊


上一篇
從 JavaScript 角度學 Python(1) - 目錄與廢話
下一篇
從 JavaScript 角度學 Python(3) - 安裝
系列文
從 JavaScript 角度學 Python31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
cheerupche
iT邦新手 5 級 ‧ 2021-09-25 15:06:21

小妹只是個菜鳥,什麼都想學,最想額外認識的就是 Python。剛好比較熟的語言是 Java 和 JavaScript,能看到這系列文章真是太棒了(收藏起來慢慢讀)~

Ray iT邦研究生 5 級 ‧ 2021-09-25 15:11:49 檢舉

很高興這個系列對你有幫助,畢竟最初的希望就是用 JavaScript 相對應的角度去學習 Python,過程可以發現 Python 有許多地方與 JavaScript 相似,那麼在學習上就會比較少痛點 :D

而基本上每過一小段章節後都會有一些非常小的練習,透過練習可以再吸收前面知識點哩~

我要留言

立即登入留言