Python是什麼?這堂課教你Python程式語言全攻略!

前言

在開始學Python程式語言之前,首先要先了解你為什麼要學習Python,因為在開始學任何事物前,了解自己的目標是很重要的

這篇文章將會向你介紹什麼是Python和我所推薦的課程,如果你已經對Python已經有一定程度上的了解

那我建議你可以直接點擊目錄跳到Python課程推薦的標題,這堂課程將會一步一步教你學習Python程式語言

畢竟學習一個事物有一個系統化的課程教學和導師的協助才不會到處碰壁,學習的效率也會更快更好

那麼,如果你還不清楚Python是什麼的話,我整理了一些有關Python的簡單資訊,簡單向你介紹Python是什麼

嗯,讓我們開始吧

Python是什麼?

Python是由吉多·范羅蘇姆(Guido van Rossum)創造,於1991年釋出,Python的設計主要強調代碼的可讀性和簡潔的語法

相比於C++或Java,Python讓開發者能夠用更少的代碼表達想法。不管是小型還是大型程式,該語言都試圖讓程式的結構清晰明瞭

更確切的來說,是「物件導向的高階程式語言」,也是「直譯式程式語言」

如果你不懂物件導向和直譯語言是什麼也沒有關係,暫時記住這件事就可以了

吉多·范羅蘇姆當初在開發這種語言時,遵照著「優雅」、「明確」、「簡單」的哲學來設計Python

Python的用途有哪些?

人工智慧

Python擁有強大而豐富的庫以及數據分析能力

而且Python是面向對象的動態語言,且適用於科學計算

不僅如此,Python提供了大量的API,這也正是因為Python當中包含著較多的適用於人工智慧的模塊

自動化運維

Python對於服務器運維而言也有十分重要的用途

由於目前幾乎所有Linux發行版中都自帶了Python解釋器

使用Python腳本進行批量化的文件部署和運行調整都成了Linux服務器上很不錯的選擇

Python中也包含許多方便的工具,從調控ssh/sftp用的paramiko,到監控服務用的supervisor

再到bazel等構建工具,甚至conan等用於C++的包管理工具,Python提供了全方位的工具集合

而在這基礎上,結合Web,開發方便運維的工具會變得十分簡單

資料分析

Python通常被用來做數據分析,因為Python可直接進行調用,方便且靈活,可以根據數據分析與統計的需要靈活使用

Python也是一個比較完善的數據分析生態系統,其中matplotlib經常會被用來繪製數據圖表

它是一個2D繪圖工具,有著良好的跨平台交互特性

網路爬蟲

許多人對編程的熱情始於好奇,終於停滯

距離真槍實幹做開發有技術差距,也無人指點提帶,也不知當下水平能幹麻

就在這樣的疑惑循環中,編程技能止步不前,而爬蟲是最好的進階方向之一

網絡爬蟲是Python比較常用的一個場景

國際上,google在早期大量地使用Python語言作為網絡爬蟲的基礎,帶動了整個Python語言的應用發展

以前國內很多人用採集器搜刮網上的內容,現在用Python收集網上的信息比以前容易很多了,如:

1. 從各大網站爬取商品折扣信息,比較獲取最優選擇

2. 對社交網絡上發言進行收集分類,生成情緒地圖,分析語言習慣

3. 爬取網易雲音樂某一類歌曲的所有評論,生成詞雲

4. 按條件篩選獲得豆瓣的電影書籍信息並生成表格……等等

應用實在太多,幾乎每個人學習爬蟲之後都能夠通過爬蟲去做一些好玩有趣有用的事

Web開發

Python是Web開發的主流語言,但不能說是最好的語言。畢竟,在Web開發中應用多使用JavaScript,原因是已一套成熟的框架

Python開發的Web項目雖小而精,但支持最新的XML技術,而且數據處理的功能較為強大

Python的其他應用舉例

1. 系統編程:提供API,能方便進行系統維護和管理,Linux下標誌性語言之一,是很多系統管理員理想的編程工具

2. 圖形處理:有PIL、Tkinter等圖形庫支持,能方便進行圖形處理

3. 數學處理:NumPy擴展提供大量與許多標準數學庫的接口。

4. 文本處理:Python提供的re模塊能支持正則表達式,還提供SGML,XML分析模塊,許多程序員利用Python進行XML程序的開發

5. 數據庫編程:程序員可通過遵循PythonDB-API(數據庫應用程序編程接口)

規範的模塊與MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等數據庫通信

Python自帶有一個Gadfly模塊,提供了一個完整的SQL環境。

6. 網絡編程:提供豐富的模塊支持sockets編程,能方便快速地開發分佈式應用程序

很多大規模軟件開發計劃例如Zope,Mnet及BitTorrent.Google都在廣泛地使用它

7. 多媒體應用: Python的PyOpenGL模塊封裝了”OpenGL應用程序編程接口”,能進行二維和三維圖像處理。PyGame模塊可用於編寫遊戲軟件

8. 黑客編程: Python有一個hack的庫,內置了你熟悉的或不熟悉的函數,但是缺少成就感

學Python能做什麼?

Python有以上那麼多強大的功能,那麼學習完Python可以從事那些工作呢?可以總結出以下幾個大方向

(1) 後端工程師:使用它單間網站,後台服務比較容易維護。如:Gmail、Youtube、知乎、豆瓣

(2) 自動化運維:自動化處理大量的運維任務

(3) 數據分析師:快速開發快速驗證,分析數據得到結果

(4) 遊戲開發者:一般是作為遊戲腳本內嵌在遊戲中

(5) 自動化測試:編寫為簡單的實現腳本,運用在Selenium/lr中,實現自動化

(6) 網站開發:藉助django,flask框架自己搭建網站

(7) 爬蟲獲取或處理大量信息:批量下載美劇、運行投資策略、爬合適房源、系統管理員的腳本任務等

具體日常比如自動備份你的MP3;還有可以做網站,很多著名的網站像知乎、YouTube就是Python寫的

也可以做網路遊戲的後台,很多在線遊戲的後台都是Python開發的

而Python又是人工智慧開發的主流語言,學習Python可以做人工智慧工程師

Python課程推薦

Python – 輕鬆學會寫程式–點此觀看

學習要求條件

無需任何程式語言的經驗

課程說明

1. 適合所有小四以上

2. 透過實作程式學習

3. 平時可以透過線上討論區發問,不用擔心無法問問題

4. 教學最熱門的程式語言: Python

課程特色

1. 輕鬆學會寫程式

口語化的解說,貼近生活的範例,複習式的教學,讓你以最輕鬆的方式學習寫程式

2. 清晰解說程式碼

站在初學者容易遇到的問題與理解困難點出發,詳細解釋程式碼,不漏掉任何標點符號

3. 啟發性的課程範例

課程中的範例除了教學寫法以外,更重要的是讓同學見識到寫程式有無限的可能

4. 17小時的紮實內容

完整系統化的內容,幫你規劃五天即可上手Python的教學內容

課程前言

大家都知道寫程式是現代最重要的技能,但寫程式最困難的就是踏出第一步

一般市售多數的教材,過度專注於教學專有名詞跟語法,學習者看過語法之後卻不知道可以做什麼

一張一張的英文語法表格,國小,國高中的同學不可能接受,甚至連社會人士也覺得很難上手

因此,我致力於建立最輕鬆,最直覺,最好理解的程式教學。這是為了讓這麼多想切入寫程式卻無法的人

甚至是嘗試了其他教材而碰壁的人,終於可以真正學好程式基礎

從內容的呈現方式,範例的選擇,教學的優先順序,都是我個人把寫程式核心重新翻轉設計

完全不按照任何死板的現有教材,結合幾所美國頂尖大學的教材與台灣實體班的教學經驗

才可以建立出足以心服口服地覺得,要是當初是這樣子的方式學習,可以多麼輕鬆的在這麼短的時間內,學會這些最有用的關鍵基礎

帶你上手寫程式以後,就彷彿賦予了超能力,從此你可能開發出不可思議的專案,或是進入科技巨頭成為工程師

就如臉書創辦人Mark Zuckerberg所說:

“在自己大學宿舍裡,一群完全沒有開過公司的人一起合作,竟然變成幾十億人在用的東西,想想真的很瘋狂,真的是扎扎實實的奇蹟。”

學習寫程式,讓自己的視野不一樣,用最輕鬆的方式,真正打好程式基礎!

課程內容

寫程式的核心:

數據型態(Data Types),條件式邏輯(Conditional Statements), 迴圈(Loops), 函式(Functions)

函式庫(Libraries)的使用,檔案讀寫,資料處理

相關延伸學習:

GitHub做版本控管,如何使用別人寫好的套件,如何寫自己的程式(思考流程是什麼),Line 聊天機器人,Class (物件)等等

除了學習寫程式的良好基礎,我認為最重要的價值是熟悉【如何把問題化為程式碼解決】,這樣子的思維訓練是非常重要的

只會程式語法是沒有用的,要懂得把面對的問題化為程式碼才是關鍵。

關於程式語言 Python

Python是目前最熱門的程式語言,更是人工智慧主要的開發語言。

在程式語言的比較排行中,各項統計 (包括使用度統計,搜尋比例統計等等),Python都拿下目前最熱門的冠軍

Python 的中心思想是簡潔、直覺,因此相當容易學習。因此,想要學習寫程式,Python 是最佳的選擇

此課程面向哪些人?

所有想學習寫程式的人 (建議小四以上)

所有想學習Python的人

點此購買課程

其他學員心得

Eason Peng:

老師講解風趣,解釋也淺顯易懂,不可多得的好課程,帶我進入了程式語言的世界

最後自己也完成了一個爬蟲專案,用到課程教的很多觀念跟技巧,像是程式改寫成Function的部分

簡化了很多重複性的程式碼,這堂課值得五星推薦!

陳厚丞 陳:

提供很多有趣的專案可以供參考學習

不會學完了函數就不知道要幹嘛

希望能接下來的進階課程能儘快推出

Yenxuchen:

『 給正在猶豫是否該購買此課程的你 』

我是商科出身,現任廣告媒體業,毫無工程背景,學習過程卻輕鬆零壓力,完全歸功於老師深入淺出的教學方式,與透過自身實戰經驗所歸納出的系統化課程內容

若你聽過 Python 且很有興趣,這套課程值得你投資!

延伸閱讀

聯盟行銷怎麼做?如何靠聯盟行銷月入百萬?

Pairs 派愛族真的能找到對象嗎?認識Pairs 派愛族讓你尋找到真愛!

無框行動好用嗎?幾個秘密讓你知道辦無框行動的好處!

Python歷史

Python的創始人為吉多·范羅蘇姆,當時他在阿姆斯特丹的CWI工作。1989年的聖誕節期間

吉多·范羅蘇姆為了在打發時間,決心開發一個新的指令碼解釋程式,作為ABC語言的一種繼承,擔負同Amoeba作業系統的互動和例外處理

之所以選中Python作為程式的名字,是因為他是BBC電視劇——蒙提·派森的飛行馬戲團的愛好者

Python是為了替代使用Unix shell和C語言進行系統管理而從ABC語言發展起來,而它的模組系統主要受到了Modula-3的影響

它還結合了C語言的最少爭議特徵。就範羅蘇姆本人看來,ABC這種語言非常優美和強大,是專門為非專業程式設計師設計的

但是ABC語言並沒有成功,究其原因,他認為是非開放造成的。范羅蘇姆決心在Python中避免這一錯誤,並取得了非常好的效果

目前范羅蘇姆仍然是Python的主要開發者,決定整個Python語言的發展方向。Python社群經常稱呼他是終身仁慈獨裁者(BDFL)

Python的特性與設計哲學

Python是多範式程式語言

完全支援物件導向程式設計和結構化程式,而它的很多特徵支援函式語言程式設計和面向切面程式(包括元程式設計和元物件(魔術方法)

Python是完全物件導向的語言,函式、模組、數值、字串都是物件;並且完全支援繼承、重載、衍生、多重繼承,有益於增強原始碼的複用性

Python支援重載運算子,因此Python也支援泛型設計。Python對遵循Lisp傳統的函式語言程式設計提供了有限的支援

它提供了filtermapreduce函式;列表推導、字典、集合和生成器表達式

標準庫中有兩個模組(functools和itertools)實現了從Haskell和Standard ML取來的函數式工具。

Python的設計哲學是「優雅」、「明確」、「簡單」。Python開發者的哲學是「用一種方法,最好是只有一種方法來做一件事」

也因此它和擁有明顯個人風格的其他語言很不一樣

在設計Python語言時,如果面臨多種選擇,Python開發者一般會拒絕花俏的語法,而選擇明確沒有或者很少有歧義的語法

這些準則被稱為「Python之禪」。在Python解釋器內運行import this可以獲得完整的列表,下面是其中首要:

1. 優美優於醜陋。明瞭優於隱晦。

2. 簡單優於複雜。複雜優於凌亂。

3. 扁平優於巢狀。稀疏優於稠密。

4. 可讀性很重要。

Python開發人員盡量避開不成熟或者不重要的最佳化。一些針對非重要部位的加快運行速度的補丁通常不會被合併到Python內

再加上因為Python屬於動態型別語言,動態型別語言是在執行期間檢查資料的類型

不得不保持描述變數值的實際類型標記,程式在每次操作變數時,需要執行資料依賴分支,而靜態型別語言相對於動態型別語言

在聲明變數時已經指定了資料類型和表示方法,根據這一原理導致Python相對於C、Visual Basic等靜態型別語言來說執行速度較慢

不過,根據二八定律,大多數程式對速度要求不高

在某些對運行速度要求很高的情況,Python設計師可以使用JIT技術如PyPy,或者使用C/C++語言編寫擴充模組

Python本身被設計為可擴充的。並非所有的特性和功能都整合到語言核心

Python提供了豐富的API和工具,以便程式設計師能夠輕鬆地使用C、C++、Cython來編寫擴充模組

Python編譯器本身也可以被整合到其它需要手稿語言的程式內。因此,有很多人把Python作為一種「膠水語言」使用

使用Python將其他語言編寫的程式進行整合和封裝

Python進階細節介紹

可以自製文字雲

什麼是文字雲?

顧名思義,它就像是由文字組成的雲,相信你一點都不陌生這類的圖

大家也許都知道「文字雲」是什麼,但你可能不知道的是,用Python來自製文字雲是一件很簡單的事!

基本上只要學會Python基本語法再用幾個好用的模組

你就能做出屬於你自己的文字雲:分析你自己的文本,調成你想要的色調,讓文字雲長成你想要的圖案

為什麼我麼會需要文字雲呢?

我們常在各種社交網站與新聞網站中看到這類圖形的蹤跡

文字雲的存在目的在於能讓閱讀者在「不閱讀所有文章」的前提下,快速聚焦在大批文章中的主要內容。

剛好最近有股聖誕潮,不如動手做做看自己的聖誕樹文字雲吧!

OCR(光學字元辨識)

你們可能聽說過,使用Python進行OCR ( Optical Character Recognition) 識別操作

在Python中,最有名的相關模組便是Google所資助的tesseract,利用tesseract可以很輕鬆地對圖像進行識別,當然,不是只有這個模組

你可能還是不太知道OCR是在做什麼,簡單舉個例子:今天你的朋友傳了一份演講稿給你

但是它並不是文字檔,而是一張照片,然後你又發現這份演講稿有地方需要修改……

這時該這怎麼辦呢?難道要一個一個字照著打嗎?如果你會Python的話,問題就解決了!

同樣不需要高深的知識,只需要知道如何「使用」工具就好了,高深的技術問題和演算法已經有高手幫你解決了

之後如果你嘗試開發自動訂票系統,你也可能會需要用到相關的模組,為了應付驗證碼的關卡,讓Python直接幫你辨識驗證碼是什麼

自己做簡易外掛

看到遊戲外掛,相信一定很多朋友眼睛為之一亮,但這裡說的外掛並不是破解遊戲內部的那種

而是可以利用 Python 的 PyAutoGui 這個模組來控制使用者的滑鼠、鍵盤操作,光是這個模組就可以玩出很多花樣了

如果再搭配上面提到的OCR或是其他影像識別技術,就更不用說了!

當然不只是用在遊戲領域,如果你今天有一堆重複的繁瑣操作要執行,像是不停地點開文件按Enter之類的,如果你懂Python就萬事解決了!

同樣地,這也是先人完成的模組,你可以不懂其中的原理跟奧秘,只要知道如何去使用這些工具!

自動寄送Email

首先,我們先認識一下 SMTP(Simple Mail Transfer Protocol),即簡單郵件傳輸協議

它是一組用於「由來源地址到目的地址傳送郵件的協定」,它負責控制信件的中轉方式

好的,跟上次的幾個功能一樣,如果你只是單純想使用這個模組的功能,其實可以不用瞭解它內部的原理、細節,只要懂得怎麼去使用即可

講到用Python 寄 Email,內行人一定都會想到Python 的 SMTP 模組
「Smtplib」它是Python內建的函式庫模組,所以不需要另外下載安裝

這個模組好用在哪呢?如果你是一個健忘的人,你就可以結合 smtplib 模組和time模組

為自已量身訂造一個小秘書程式,能夠在特定的時間寄發Email給你,提醒你重要的相關事宜,是不是很方便呢?

再者,如果是有在自己玩爬蟲的初學者,你也能結合你的爬蟲和 smtplib 讓你變得更神通廣大

舉例來說:你正在收集某饒舌歌手的資訊,於是你寫了一個不停爬取PTT Hip-Hop版的爬蟲

一爬到含關鍵字(饒舌歌手名字..等等)的文章,馬上會整理出連結,並寄發Email通知你,讓你隨時知道最新資訊,是不是很實用呢?

整理電腦檔案

如果你也和Bar主一樣,超喜歡亂下載東西,又沒有好好整理的習慣,或是常常要和組員合作報告

常常一直改版、修改,最後電腦還剩很多copy……那你一定要學學Python的 os 模組

這個模組可以處理幾乎所有跟檔案、路徑、資料夾的各種操作,例如移動、刪除、複製、重新命名…等等

舉個例子:Bar主手機裡的音樂散落在各個資料夾,某天Bar主想要把音樂全部copy到電腦裡,但是實在是太多資料夾了,不知道該從哪開始

遇到這種苦差事還是交給Python吧,不只是能更快地處理完,而且寫好的程式下次還能繼續使用!

資料出處註明

Python – 維基百科,自由的百科全書

Python是什麼? TOP7 新手必讀知識!

Python這5大主要用途你一定要知道

學程式能做什麼?你所不知道的「Python有趣用途」(上)

學程式能做什麼?你所不知道的「Python有趣用途」(下)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *