張仲豪的學習歷程檔案 - 111-1 人工智慧AI - Python 入門
 


歷程檔案 Portfolio

    Python 入門

    (一)  Python 介紹:零基礎也能自學的基本語法

    Python 是一種被廣泛使用的直譯式且功能強大的高階程式語言,程式碼的可讀性高,語法接近英語,只要具備初中級英語能力即可撰寫程式碼。此外,相較其它的程式語言,例如:C語言或Java,Python 指令撰寫較簡潔,可以用更少的程式碼即能達到同樣的結果,對於學習者來說,Python 學習門檻低且更容易理解。

    近年來急速發展的大數據和人工智慧,多是採用Python 語言,這也使得Python 成為全球最受歡迎的程式語言之一,排名僅次於C語言。Python 擁有豐富、龐大的函式庫(Library),由於應用廣泛使得Python 發展空間更大、更迅速,相關學習資源也更豐富。

    (二)  Python 可以做什麼?4大應用介紹

    Python 的應用相當廣泛,小到可以幫你處理日常生活和工作中,帶有重複性質的事情,例如:批量修改文件名、批量獲取下載連結等應用,大到數據分析、爬蟲、人工智慧等。以下將列舉4項較為人所熟知的應用領域:

    1.數據分析

    數據資料的分析處理可說是Python 的強項,Python 擁有許多專門處理數據分析的函式庫可方便運用,且Python 不僅融合了R語言快速成熟的數據挖掘能力,還多了能建構應用程式、系統或網站的功能。 

    2.人工智慧

    人工智慧是造就Python 熱門的主要原因,人工智慧所涵蓋的機器學習(Machine Learning)、神經網絡(Neural Network)、深度學習(Deep Learning)等,都能透過Python 的函式庫得到廣泛的支持和應用。

    3.網站開發

    隨著Python 的網站開發框架日益成熟,在上百種的網站開發框架中,與Web框架有關的函式庫較熱門且最大宗的主要是Django。由於網站開發框架是一個已經設定好的程式架構,能使網站開發變得更有效率。

    4.網路爬蟲

    能夠編寫網路爬蟲的程式語言不少,但目前的主流是以Python 作為常用語言去執行網路爬蟲。網路爬蟲成為Python 最常見的應用,也最適合當作初階學習者驗收學習成果目標。

    (三)  Python 基本語法 3大優點介紹

    目前雖有不少功能強大的直譯式程式語言,然而,Python 在近年來卻是最被廣泛使用的程式語言,主要是因為它具備了以下3大特點:

    1.簡單易懂輕鬆入門

    Python 對於新手來說是最友善的程式語言,語法編寫與英語類似,在閱讀Python 程式碼時可以很直覺地了解程式語法想表達什麼,相較於其它程式語言,Python 容易撰寫、除錯,也容易學習;且即便只是一句程式語言也能執行,不像其它程式語言必須額外學會如何編寫程式進入點才可以執行命令。

    2.功能強大使用廣泛

    Python 簡短的程式碼就有強大的功能,可以透過內建程式庫直接開發圖形介面軟體,還可以直接處理網頁前端及後端的開發,更可以透過內建的功能進行數據分析及爬蟲的運算。由於Python 用法廣泛,當掌握一定程度後,想再深造其它程式語言時會更加容易。

    3.未來需求高

    現今有許多熱門的話題及工作都需要使用到Python 程式語法,從AI人工運算、物聯網運算、數據分析到自動駕駛,都是以Pyhton 作為其主要的程式語言。

    (四)  Python入門基本教學介紹

    優點一:語法簡單

    我們以 C、Java、Python 三種語言為例來比較哪個語法較簡易讓人比較好理解

    先看 C 語言。C 語言得寫出下面這段程式碼、存檔、拿著這個原始碼檔去編譯才能在螢幕上印出「Hello! World!」:

    #include

    int main()
    {
       printf(“Hello! World!\n”);
    }

    接著來看 Java 語言。跟 C 語言很類似得寫出下面這段程式碼歷經「存檔、編譯、執行」三步驟後在螢幕上印出「Hello! World!」字樣:

    public class HelloWorld
    {
       public static void main(String[] args)
       {
           System.out.println(“Hello! World!”);
       }
    }

    最後是 Python。Python 只要寫下面這段原始碼直接按 Enter 鍵不必存檔、不必編譯就能直接執行並印「Hello! World!」字樣:

    print(“Hello! World”)

    很明顯Python 贏了許多如此簡易清楚不用打許多就能完成讓許多人喜歡~

    優點二:功能強大

    Python 另一個受歡迎的原因可以用在網頁設計、手機 App 撰寫、遊戲程式設計、硬體自動控制、生物醫學、大數據…等領域。所以Python能說是「萬用語言」阿。

    Python 能做到「萬用語言」的原因莫過於他有豐富的「函式庫(Library)」。不但累積了相當完整的標準程式庫 (模組)更有無以計數的非標準模組而且絕大部分都是開放原始碼的。單以內建的模組來講從簡單的數學運算、字串處理、網際網路協定連線、網際網路資料處理、各種壓縮格式以及 POSIX 與主要作業系統的支援功能等等含括的範圍非常地廣泛。
    所謂「函式庫」就是把別人事先寫好的一些好用 Python 程式打成一包允許你直接取用而不必學習這些程式背後的寫作原理。

    不僅如此Pandas、scikit-learn 和 Tensorflow 等包使 Python 在高級機器學習應用中也有很強的存在感。

    優點三:能夠跨平台

     

    各種主要的作業系統都支援 Python。Python 程式常常不需要修改便能同時在 Linux 與 Windows 平台上執行即使撰寫 GUI 程式 (透過 PyGTK, wxPython 等 binding) 也是一樣。所撰寫的 Python 程式透過標準的 distutils (模組) 進行包裝後用標準的方式即可安裝於各種平台;在 Windows 下更可以自動產生方便的可執行 installer。

     

     

    Python 的缺點

    缺點一:型別安全

    Python是一個動態類型的語言,它只能進行動態類型檢查。舉例:由於在Python中,因為integer類型與string類型是不能相加的,所以經常會出現類別錯誤。

    缺點二:執行速度慢

    Python 為了能在各種場合都發揮作用,就得取得各種場合的「平衡點」,沒辦法為單一情況做「最佳化」!但這點影響不大,畢竟對使用者而言,機器執行的速度可以忽略,因為感覺不太出速度的差異XD

    Python 的基礎語法

    變數型態

    • 布林(Boolean) ‣ True / False

    • 整數(Integer) ‣ 24, 100 …

    • 浮點數(Float) ‣ 3.1416 …

    • 字串(String) ‣ ‘Hello’ , “Hello” …

     

    ‣ 確認變數型態:type() e.g. type(3.14) -> float

    ‣ Python 3 整數無⼤⼩限制

    ‣ 字串可⽤單引號或雙引號


    命名規則

     

    • 可以⽤來命名的字元 ‣ ⼩寫英⽂字⺟(a-z) ‣ ⼤寫英⽂字⺟(A-Z) ‣ 數字(0-9) ‣ 底線(_)

    • 規則:開頭不可以是數字

    ‣ Python 3 統⼀使⽤Unicode (萬國碼)包含中⽂字也都可⽤來命名 (但 不建議) e.g. 變數 = 3

     

     

     

    保留字

     

    不能使⽤這些字來命名

     

    False, class, finally, is , return None, continue, for, lambda,  True, def, from, nonlocal,  while and, del, global, not, with as, elif, if, or, yield assert, else, import, pass break, except, in, raise ,try

     

     

    基本運算

    Gbvsv4SmO8vvjh2L2mx5il3qNacr0ON824qqZAz_FbH7Jn4ijgMuT8Izvv6TgucFLpMv8GiryDpgcQiM8G_HhO7Zjf3tkiOgG3q7dapeArFP3K0OzIMMdw0QDgTrA7i3ge0J8hN7

     

    運算規則:先乘除後加減 e.g. 2 + 3 * 2 = 8

     

    資料類型轉換

     

    • 轉換成數字:int()

    ‣ e.g. int(12.3) = 12(無條件捨去)

    • 轉換成浮點數:float()

    ‣ e.g. float(’12.3’) = 12.3 • 轉換成字串:str() ‣ e.g. str(12.3) = ’12.3 ’

    Print

    - 輸出⾄螢幕 ‣ e.g. print(“Hello”)

    - 以空⽩串接字串或數值(會被轉成字串)

     

    ‣ e.g. print(“Hello”,”Python”,123)

    ‣ Hello Python 123

     

    ‣ Print in Python 2 and 3

    e.g. print “Hello” (Python 2)

    e.g. print(“Hello”) (Python 3)

     

     

     

     

    引號

     

    - 單引號(’)和雙引號(”)效果相同

    - 若字串中需使⽤單或雙引號,則須⽤另⼀種引號括住 ‣ 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

     

    ‣ Key: 包含頭(i)不包含尾(j)

    ‣ Python 的切片(Slicing)規則適⽤於 許多地⽅,包含後續課程的串列 (List)、矩陣、資料表(DataFrame) 等資料格式,請務必熟悉。

     

    字串切割與合併

    • 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 的實務應用主要有:

    1.數據處理分析

    資料處理、統計與分析不管在商業領域或科學研究上一直都極重要,以往大多用Excel 工具來完成這項任務,但隨著硬體設備提升、互聯網發達,取得並儲存海量資料已經不像從前那麼困難又高成本。

    而大數據分析能大幅降低統計誤差,增加準確率,慢慢發展為新趨勢,不過 Excel 能處理的資料量有限,使得R和 Python 漸漸興起。

    Python 有許多專門處理數據分析的函式庫可以方便運用,再加上與 R 相比,除了統計用途,還多了能建構應用程式、系統或網站的功用,所以更通用許多。

    2.人工智慧

    Python 可以很方便處理並分析數據的特性,更進一步發展運用到人工智慧(AI)。

    AI 涵蓋機器學習(Machine Learning)和深度學習(Deep Learning),每天都有成千上萬的相關專案在用著數百個 Python 函式庫,例如 TensorFlow、Keras、Torch,以及用於電腦視覺 OppenCV 等。

    3.網站開發

    雖然絕大部分網站開發是用 PHP、Java、JavaScript 等程式語言,可是現在 Python 也越來越多人用,因為強大的函式庫、廣泛的實際應用使 Python 日漸成為 Web 開發的必需。

    與 Web 框架有關的函式庫較熱門的有 Django、Weppy、Bottle、Fiask 等,其中 Django、Weppy 為較重量級的 Web 框架,Bottle、Flask 則是輕量級。

    4.自動化測試

    任何產品在發表前都需要經過一道道「測試」,測試的程序通常要花費大量時間,如果用人工測試極度浪費人力成本,所以自動化測試尤其必要。

    Python 有許多協助自動化測試的函式庫,例如用來幫助測試網頁前端的 Selenium、以關鍵字驅動為主的自動化測試工具 Robot Frame等


                                                                                                                           Python其他常用的函式庫
                                                                                                                                                                   

    函式庫名稱適用於
    Pandas數據操作與處理
    Matplotib繪製圖表
    OpenCV電腦視覺
    Plotly視覺化互動圖表
    Django、Weppy、Bottle、Flask服務器端 Web 開發
    Selenium網頁爬蟲、自動化測試
    BeautifulSoup解析 HTML 和 XML
    SciPy工程應用、科學和數學
    NumPy科學計算
    TensorFlowKerasTorch深度學習
    scikit-learn機器學習
     
    全部共 0則留言
    登入帳號密碼代表遵守學術網路規範


    文章分類 Labels


    最新文章 Top10

    中華科技大學數位化學習歷程 - 意見反應