張仲豪的學習歷程檔案 - 111-1 人工智慧AI - Python 入門 |
|
|
Python 入門(一) Python 介紹:零基礎也能自學的基本語法 Python 是一種被廣泛使用的直譯式且功能強大的高階程式語言,程式碼的可讀性高,語法接近英語,只要具備初中級英語能力即可撰寫程式碼。此外,相較其它的程式語言,例如:C語言或Java,Python 指令撰寫較簡潔,可以用更少的程式碼即能達到同樣的結果,對於學習者來說,Python 學習門檻低且更容易理解。 近年來急速發展的大數據和人工智慧,多是採用Python 語言,這也使得Python 成為全球最受歡迎的程式語言之一,排名僅次於C語言。Python 擁有豐富、龐大的函式庫(Library),由於應用廣泛使得Python 發展空間更大、更迅速,相關學習資源也更豐富。 (二) Python 可以做什麼?4大應用介紹Python 的應用相當廣泛,小到可以幫你處理日常生活和工作中,帶有重複性質的事情,例如:批量修改文件名、批量獲取下載連結等應用,大到數據分析、爬蟲、人工智慧等。以下將列舉4項較為人所熟知的應用領域: 數據資料的分析處理可說是Python 的強項,Python 擁有許多專門處理數據分析的函式庫可方便運用,且Python 不僅融合了R語言快速成熟的數據挖掘能力,還多了能建構應用程式、系統或網站的功能。 人工智慧是造就Python 熱門的主要原因,人工智慧所涵蓋的機器學習(Machine Learning)、神經網絡(Neural Network)、深度學習(Deep Learning)等,都能透過Python 的函式庫得到廣泛的支持和應用。 隨著Python 的網站開發框架日益成熟,在上百種的網站開發框架中,與Web框架有關的函式庫較熱門且最大宗的主要是Django。由於網站開發框架是一個已經設定好的程式架構,能使網站開發變得更有效率。 能夠編寫網路爬蟲的程式語言不少,但目前的主流是以Python 作為常用語言去執行網路爬蟲。網路爬蟲成為Python 最常見的應用,也最適合當作初階學習者驗收學習成果目標。 (三) Python 基本語法 3大優點介紹目前雖有不少功能強大的直譯式程式語言,然而,Python 在近年來卻是最被廣泛使用的程式語言,主要是因為它具備了以下3大特點: Python 對於新手來說是最友善的程式語言,語法編寫與英語類似,在閱讀Python 程式碼時可以很直覺地了解程式語法想表達什麼,相較於其它程式語言,Python 容易撰寫、除錯,也容易學習;且即便只是一句程式語言也能執行,不像其它程式語言必須額外學會如何編寫程式進入點才可以執行命令。 Python 簡短的程式碼就有強大的功能,可以透過內建程式庫直接開發圖形介面軟體,還可以直接處理網頁前端及後端的開發,更可以透過內建的功能進行數據分析及爬蟲的運算。由於Python 用法廣泛,當掌握一定程度後,想再深造其它程式語言時會更加容易。 現今有許多熱門的話題及工作都需要使用到Python 程式語法,從AI人工運算、物聯網運算、數據分析到自動駕駛,都是以Pyhton 作為其主要的程式語言。 (四) Python入門基本教學介紹優點一:語法簡單 我們以 C、Java、Python 三種語言為例﹐來比較哪個語法較簡易﹐讓人比較好理解 先看 C 語言。C 語言得寫出下面這段程式碼、存檔、拿著這個原始碼檔去編譯﹐才能在螢幕上印出「Hello! World!」: #include 接著來看 Java 語言。跟 C 語言很類似﹐得寫出下面這段程式碼﹐歷經「存檔、編譯、執行」三步驟後﹐在螢幕上印出「Hello! World!」字樣: public class HelloWorld 最後是 Python。Python 只要寫下面這段原始碼﹐直接按 Enter 鍵﹐不必存檔、不必編譯﹐就能直接執行﹐並印「Hello! World!」字樣: print(“Hello! World”) 很明顯Python 贏了許多﹐如此簡易清楚﹐不用打許多就能完成﹐讓許多人喜歡~ Python 另一個受歡迎的原因﹐可以用在網頁設計、手機 App 撰寫、遊戲程式設計、硬體自動控制、生物醫學、大數據…等領域。所以Python能說是「萬用語言」阿。 Python 能做到「萬用語言」的原因﹐莫過於他有豐富的「函式庫(Library)」。不但累積了相當完整的標準程式庫 (模組)﹐更有無以計數的非標準模組﹐而且絕大部分都是開放原始碼的。單以內建的模組來講﹐從簡單的數學運算、字串處理、網際網路協定連線、網際網路資料處理、各種壓縮格式﹐以及 POSIX 與主要作業系統的支援功能等等﹐含括的範圍非常地廣泛。 不僅如此﹐Pandas、scikit-learn 和 Tensorflow 等包使 Python 在高級機器學習應用中也有很強的存在感。
各種主要的作業系統都支援 Python。Python 程式常常不需要修改﹐便能同時在 Linux 與 Windows 平台上執行﹐即使撰寫 GUI 程式 (透過 PyGTK, wxPython 等 binding) 也是一樣。所撰寫的 Python 程式透過標準的 distutils (模組) 進行包裝後﹐用標準的方式即可安裝於各種平台;在 Windows 下更可以自動產生方便的可執行 installer。
Python 的缺點缺點一:型別安全Python是一個動態類型的語言,它只能進行動態類型檢查。舉例:由於在Python中,因為integer類型與string類型是不能相加的,所以經常會出現類別錯誤。缺點二:執行速度慢Python 為了能在各種場合都發揮作用,就得取得各種場合的「平衡點」,沒辦法為單一情況做「最佳化」!但這點影響不大,畢竟對使用者而言,機器執行的速度可以忽略,因為感覺不太出速度的差異XD 變數型態• 布林(Boolean) ‣ True / False• 整數(Integer) ‣ 24, 100 …• 浮點數(Float) ‣ 3.1416 …• 字串(String) ‣ ‘Hello’ , “Hello” …
命名規則
• 可以⽤來命名的字元 ‣ ⼩寫英⽂字⺟(a-z) ‣ ⼤寫英⽂字⺟(A-Z) ‣ 數字(0-9) ‣ 底線(_) • 規則:開頭不可以是數字
保留字
不能使⽤這些字來命名
基本運算
資料類型轉換
• 轉換成數字:int() ‣ e.g. int(12.3) = 12(無條件捨去) • 轉換成浮點數:float() ‣ e.g. float(’12.3’) = 12.3 • 轉換成字串:str() ‣ e.g. str(12.3) = ’12.3 ’ - 輸出⾄螢幕 ‣ e.g. print(“Hello”) - 以空⽩串接字串或數值(會被轉成字串)
‣ e.g. print(“Hello”,”Python”,123) ‣ Hello Python 123
引號
- 單引號(’)和雙引號(”)效果相同 - 若字串中需使⽤單或雙引號,則須⽤另⼀種引號括住 ‣ e.g. ‘Hello’ 等於 “Hello” ‣ e.g. “I’m Ben.”
字串串接(+) ‣ e.g. str = “Hello” + “Python” ‣ HelloPython 字串複製(*) ‣ str = “Hello” * 3 + “Python” ‣ HelloHelloHelloPython
字串字元取用
字串長度 ‣ len(str) 字元取⽤(i可為負值,代表從最後開始數,-1為最後⼀個位置) ‣ str[i]:第i個字元(從0開始算起) ‣ str[i:j]:從i到j(不包含位置j) ‣ str[:j]:從開頭(0)到j(不包含位置j) ‣ str[i:]:從i到最後 ‣ str[i:j:k]:從i到j(不包含位置j),間隔k
字串切割與合併 • str.split(分隔符號) ‣ e.g. str.split(“,”) • str(分隔符號).join(iterable) (iterable置入可迭代的物件如list) ‣ e.g. “,”.join(word_list)
⼤⼩寫轉換
• str.upper():轉⼤寫 ‣ e.g. “hello”.upper() ‣ HELLO • str.lower():轉⼩寫 ‣ e.g. “HELLO”.lower() ‣ hello
其他 • 判斷是否是⼤/⼩寫:str.isupper() / str.islower() • 判斷是否是數字:str.isnumeric() • 字串取代:str.replace() Python實務應用 Python 最方便也最厲害的就是擁有非常多函式庫(Library),任何能想到的功能或方法都已有人整合起來,只要善加利用,就能節省大量開發時間,尤其對人力少又需搶時間發展產品的新創來說,這真的超棒!
Python 的實務應用主要有: 資料處理、統計與分析不管在商業領域或科學研究上一直都極重要,以往大多用Excel 工具來完成這項任務,但隨著硬體設備提升、互聯網發達,取得並儲存海量資料已經不像從前那麼困難又高成本。 而大數據分析能大幅降低統計誤差,增加準確率,慢慢發展為新趨勢,不過 Excel 能處理的資料量有限,使得R和 Python 漸漸興起。 Python 有許多專門處理數據分析的函式庫可以方便運用,再加上與 R 相比,除了統計用途,還多了能建構應用程式、系統或網站的功用,所以更通用許多。 Python 可以很方便處理並分析數據的特性,更進一步發展運用到人工智慧(AI)。 AI 涵蓋機器學習(Machine Learning)和深度學習(Deep Learning),每天都有成千上萬的相關專案在用著數百個 Python 函式庫,例如 TensorFlow、Keras、Torch,以及用於電腦視覺 OppenCV 等。 雖然絕大部分網站開發是用 PHP、Java、JavaScript 等程式語言,可是現在 Python 也越來越多人用,因為強大的函式庫、廣泛的實際應用使 Python 日漸成為 Web 開發的必需。 與 Web 框架有關的函式庫較熱門的有 Django、Weppy、Bottle、Fiask 等,其中 Django、Weppy 為較重量級的 Web 框架,Bottle、Flask 則是輕量級。 4.自動化測試 任何產品在發表前都需要經過一道道「測試」,測試的程序通常要花費大量時間,如果用人工測試極度浪費人力成本,所以自動化測試尤其必要。 Python 有許多協助自動化測試的函式庫,例如用來幫助測試網頁前端的 Selenium、以關鍵字驅動為主的自動化測試工具 Robot Frame等。
|
|