fbpx

前言

2020年TIOBE程式語言排名,第一名是Java,第二名是C,而第三名的Python是從2019年開始超越C++,也就是說Python成長快速且越來越熱門。

資料來源取自:HelloGitHub

早期的程式語言為了讓電腦看懂並發揮它十足的能力,讓程式語言變得艱澀難懂。

Python的出現受到許多人的喜愛,到底Python有什麼吸引人的特點呢?它又能拿來做什麼呢?讓我們繼續看下去吧!

Python簡介

Python的創始人是Guido Van Rossum,在1989年聖誕節期間的阿姆斯特丹,他為了打發時間,決定開發一個新的程式,來做為ABC語言的後繼,有趣的事情是之所以會用Python(原為蟒蛇之意)取名,是源自於他喜歡BBC電視劇——Monty Python馬戲團。

ABC語言是一種程式語言與編程環境,語言的目的是在教導非專業的程式設計師學習如何開始寫程式,Python的創始人曾為ABC系統工作了好幾年,以他的視角來看,ABC語言既優美又強大。但他為什麼要另外開發Python呢?他認為ABC語言沒有成功的原因,追根究柢是因為程式碼非開放,因此他決定Python要避免這樣的錯誤,以現今的結果來看,開發過程漸趨透明,社群也對開發進度做出了極大的貢獻,這樣的決定確實取得了非常好的成果。

Python版本:

Python v2.7(2020年結束維護):

實現完整的垃圾回收且支援Unicode,可以將未來不會被存取的程式回收,歸還記憶體空間,減少程式的錯誤外,也能減輕程式員的負擔。

Python v3.5(2008年12月3日發布)

Python v3.8(最新版本):

從3.0開始Python的原始碼並不完全相容,因此如果從現在開始學Python的話,可以直接從最新的版本開始學。但最重要的事情還是:了解自己想要用程式解決什麼樣的問題,找到相對適合的程式語言。

Python特點

優點:

  1. 簡單易學易用:Python語法簡單易讀,就像閱讀通用的語言,因此當程式出現錯誤時,大部分只要專注於解決問題的邏輯本身,可以省下檢查語法錯誤的時間,但又不會喪失Python對語法的嚴格要求。
  2. 免費開源:Python開放原始碼,可以自由的copy套件、閱讀、修改原始碼,把前人的成果用於新的成品中。
  3. 可移植性:由於Python開源的特性,它不需要經過修改就能在不同平台(Windows、MacOS、Linux……)上運行。
  4. 可混合編程(C/C++/Java/.net):部分程式可以用C或C++撰寫,在Python程式中使用;或是將Python程式用於C或C++內,因此Python又被稱為膠水語言。
  5. 開發效率高:因為開源的關係,除了Python本身內建的標準模組外,強大的社群中也提供了許多函式庫與模組,可以為你省下開發初期的精力和時間。
  6. 應用領域廣泛:可應用的領域請見下段。

缺點:

  1. C/C++相比執行速度不夠快:蒐集了資料後,讓Python執行速度相較慢的原因有很多,大部分的說法都會提到CPython的編譯器是使用GIL(全局解釋器鎖),即使在多核心處理器上,也只能允許同一時間執行一個執行緒。如果有寫的不對的地方,歡迎留言告訴我!!
  2. 不能封閉原始碼:開源的特性在優點的部分講了很多,雖然有些人可能覺得自己的心血不想被別人使用,但也因為開源的特性,才使得Python不斷的進步、不斷的強大。

Python應用領域

說了這麼多Python的特性,那Python到底可以被運用在哪些地方呢?Python可以被應用的領域如下:

  • web開發:Python的框架逐漸成熟,有名的開放框架像是Django、Flask
  • 網路爬蟲:由於網路上的資料非常多,但光靠人力是很難快速地把合適的資料都蒐集、統整好,如果學會基本的網路爬蟲方法,就可以方便、精確、快速的從網路獲取資料
  • 科學計算與數據分析:隨著Python函式庫的開發和完善,如:Numpy、SciPY、Matplotlib,Python可以進行各種數學運算、繪製2D或3D的圖表
  • 人工智慧:最近越趨熱門的領域,在這個大範疇中,不論是機器學習、神經網路、深度學習,Python都是主流的程式語言
  • 系統運維:如果有需要重複執行的任務,可以應用相對應的Python模組來提升工作效率,像是自動更新服務器、監視服務器的連接等
  • 雲計算:OpenStack(雲計算管理平台)是由Python寫的,基礎設施即服務(IaaS)及軟體即服務(SaaS)都需要用到OpenStack,而雲計算中的其他服務都是搭建在這些之上
  • 網路編程:Python提供兩個級別訪問的網路服務,包括:基本的Socket、模塊SocketServer,可以訪問操作系統的全部方法、簡化網路服務器的開發
  • 遊戲開發:Python可以用來編寫遊戲的邏輯、服務器,而PyGame庫可以直接開發簡單遊戲
  • 其他:Python的應用領域當然不限於這些,歡迎大家多搜尋資料並和我分享哦~

 

那EP.1也差不多到尾聲了,EP.2會開始進入Python入門,包括建置開發環境、介紹編譯器、執行語法的一些注意事項,我們下次見~

如果想追蹤我更多文章的話,可以加入程式小白的 JS Python 學習群的社團,和我還有其他學習夥伴一起討論、交流、互動哦~我們下次見~

 

補充~想和大家分享10月底有一場舉辦的線上小聚會談到機器學習!這也是我在Python中會感興趣的主題之一,Teresa已經報名了也歡迎大家點進去看看活動哦~

活動資訊:https://pse.is/vjqz8

參考資料:
https://zh.wikipedia.org/wiki/Python

https://news.sina.com.tw/article/20200527/35294146.html

http://www.w3big.com/zh-TW/python/python-socket.html

https://www.youtube.com/watch?v=BsxKU2wAcw4&ab_channel=ChinaGirls

https://www.itread01.com/content/1550177486.html

 

Leave a Reply