前言
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特點
優點:
- 簡單易學易用:Python語法簡單易讀,就像閱讀通用的語言,因此當程式出現錯誤時,大部分只要專注於解決問題的邏輯本身,可以省下檢查語法錯誤的時間,但又不會喪失Python對語法的嚴格要求。
- 免費開源:Python開放原始碼,可以自由的copy套件、閱讀、修改原始碼,把前人的成果用於新的成品中。
- 可移植性:由於Python開源的特性,它不需要經過修改就能在不同平台(Windows、MacOS、Linux……)上運行。
- 可混合編程(C/C++/Java/.net):部分程式可以用C或C++撰寫,在Python程式中使用;或是將Python程式用於C或C++內,因此Python又被稱為膠水語言。
- 開發效率高:因為開源的關係,除了Python本身內建的標準模組外,強大的社群中也提供了許多函式庫與模組,可以為你省下開發初期的精力和時間。
- 應用領域廣泛:可應用的領域請見下段。
缺點:
- 與C/C++相比執行速度不夠快:蒐集了資料後,讓Python執行速度相較慢的原因有很多,大部分的說法都會提到CPython的編譯器是使用GIL(全局解釋器鎖),即使在多核心處理器上,也只能允許同一時間執行一個執行緒。如果有寫的不對的地方,歡迎留言告訴我!!
- 不能封閉原始碼:開源的特性在優點的部分講了很多,雖然有些人可能覺得自己的心血不想被別人使用,但也因為開源的特性,才使得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開發環境 會開始入門Python,包括建置開發環境、介紹編譯器、執行語法的一些注意事項,我們下次見~
Python初學總整理 全系列:
Python初學總整理 第1講:Python簡介 (本篇)
Python初學總整理 第3講:Python資料型態和運算子
Python初學總整理 第4講:Python條件、迴圈與函數
Python初學總整理 第7講:爬蟲實例解析 – 以爬取臉書社團為案例,使用 Selenium 來進行網頁模擬爬蟲
文章看完還是不知道該從哪裡下手?
就從線上課程開始吧!不讓你獨自摸索好幾個月,用8小時帶你走完基礎與精華,培養你基礎的Python概念,讓自學下一步不是煩惱!
全新Python 課程上架,8小時基礎實戰!,限時優惠只要NT 600 (HDK 120 起)!
不讓妳浪費一整天,只要你8小時,就能讓你學會基礎!
如果你的入門還在單打獨鬥,歡迎來到快樂學程式找到志同道合的夥伴,你的自學之路不孤單。
參考資料:
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