跳到主要內容

文章

目前顯示的是 十二月, 2019的文章

[Python教學]Python Lambda Function應用技巧分享

Photo by Fatos Bytyqi on Unsplash Lambda 函式,也就是匿名函式,不需要定義名稱,只有一行運算式,語法非常簡潔,功能強大,所以現代程式語言如 Java、C# 及 Python 等都支援 Lambda 函式,適用於小型的運算, Python的 一些內建函式甚至使用它作為參數值的運算。現在就來介紹 如何 在 Python 中使用 Lambda 函式與技巧吧,包含: Lambda 語法與範例 Python Lambda 函式的應用 Lambda 函式 vs 一般函式 (Function) 一、 Lambda 語法與使用範例 由於 Lambda 函式只有一行程式碼,所以在撰寫時有一些限制,我們來看一下它的語法: lambda parameter_list: expression 這邊教大家一個技巧,在撰寫 Lambda 函式時,於 Visual Studio Code 輸入 lambda 關鍵字,接著按下 Tab 鍵,就會自動產生範例中的語法,包含了三個部分: lambda 關鍵字 parameter_list( 參數清單 ) expression( 運算式 ) 其中, parameter_list( 參數清單 ) 也就是 Lambda 函式的傳入參數,可以有多個,以逗號分隔。而 expression( 運算式 ) 則是針對傳入參數來進行運算,只能有一行運算式,不像 一般函式(Function) 可以有多行。接下來,我們透過幾個範例來了解如何使用 Lambda 函式吧。 範例 1 : 範例中將 Lambda 函式指派給一個變數,接著就可以透過此變數並傳入參數來進行呼叫。 範例 2 : Lambda 函式支援 IIFE(immediately invoked function expression)語法 ,意思是 利用  function expression 的方式來建立函式,並且立即執行它,語法如下 : (lambda parameter: expression)(argument) 範例中即是利用此語法在 Lambda函式 定義後,立即傳入參數執行。 範例 3 : 透過此範例可以知道,當 Lambda 函式經定義

[Python教學]掌握重要的Python例外處理機制

Photo by Jan Genge on Unsplash 在開發應用程式的過程中,或多或少都有機會發生錯誤,原因可能是使用者輸入不正確的資料、網路斷線或語法上的問題等,而如果沒有做好例外處理的機制,程式碼可能因此中斷或發生不可預期的情況,況且讓客戶看到錯誤訊息,對產品的信心也會大打折扣。 為了避免上述的情形發生,在開發的過程中就應考慮到錯誤發生時,程式碼要如何做適當的反應,這也就是今天要跟大家分享的主題,讓程式碼在發生錯誤時,能夠顯示友善的錯誤訊息,並且程式碼不會因此而中斷。除了在開發上易於偵錯外,也避免產品上線時發生問題而顯示天文訊息給使用者看。 Python 在例外處理的機制,包含了: 基本的例外錯誤處理 (try-except) 不同的例外錯誤處理 (different exceptions) finally 區塊 (try-except-finally) 自行拋出例外錯誤 (raise exceptions) 一、 基本的例外錯誤處理 (try-except) 在學習 Python 基本的例外錯誤處理前,先來了解什麼是例外錯誤 ? 如下範例: 發生例外錯誤時,就會顯示類似如上的訊息,告訴您哪一行程式碼,發生了什麼類型的例外錯誤。而範例中的訊息意思即是告訴我們存取了沒有在 串列 (List) 中的元素,導致錯誤的發生。 像這樣沒有做好例外處理,除了程式碼中斷外,也讓使用者看到了這樣的天文訊息,如果又不幸的被駭客看到了,它可能就藉此知道哪行程式碼出現了漏洞。所以在開發應用程式時,例外處理非常的重要。 Python 基本的例外錯誤處理就是將程式碼置於 try 區塊中,接著在 except 區塊定義當 try 區塊中有任一行發生例外錯誤時,需進行什麼樣的反應或處理,如下範例: 進行 try-except 的例外處理後,程式碼沒有中斷,並且執行了我們所預期發生錯誤時,要進行的動作。相反的,當沒有例外發生時, except 區塊中的程式碼則不會被執行。 如果在開發的過程中,大概知道可能會發生的例外錯誤類別,則可於 except 關鍵字之後加上該類別名稱,而發生此類別以外的錯誤,就會執行沒有加類別名稱的 except 區塊,如下範例: 由於範例中發生了 ValueError 的錯誤,

[Python教學]5個必知的Python Function觀念整理

Photo by Susan Holt Simpson on Unsplash 在寫程式碼時有一個非常重要的觀念是 DRY(Don’t Repeat Yourself) ,意思是避免 同樣的程式碼重複出現在很多個地方, 除了可讀性很低外,也不易維護。所以 要適當的進行封裝,來達到程式碼的重用性 (Reusable) 。 今天要來教大家如何建構自己的   Python 函式 (Function) ,就是能夠讓你的程式碼被重複的使用 (Reusable) ,並且提高維護性 及可讀性。其中有五個必須要知道的重要觀念, 包含了: 函式 (Function) 結構 函式(Function) 參數 函式(Function) *args 、 **kwargs 運算子 函式(Function) 種類 函式(Function) 變數範圍 (Scope) 一、函式 (Function) 結構 首先Python 函式 的結構包含了 def 關鍵字、 函式 名稱、參數及實作內容,如下範例: 函式 名稱的命名習慣上會使用小寫字母,並且以底線來分隔單字。參數用來接收外部資料,而實作的內容則是這個 函式 所要執行的任務,需注意縮排。接下來就針對 函式 的各個部分進行詳細的說明。 二、 函式(Function) 參數 參數簡單來說就是接收外部所傳來的資料,進而執行相關的邏輯運算。參數個數取決於 函式 內部運算時所需的資料個數,所以在一般情況下,呼叫 函式 時一定要傳入相對的參數個數資料,否則就會出現例外錯誤,如下範例: 函式 的參數,又可分為: 關鍵字參數 (Keyword Argument) : 呼叫函式時,在傳入參數值的前面加上函式所定義的參數名稱,如下範例。除了提高可讀性外,也可將此種參數打包成 字典 (Dictionary) 資料型態,在等一下的 xargs 、 xxargs 運算子部分會來進行說明。 預設值參數 (Default Argument) : 在函式定義的參數中,將可以選擇性傳入的參數設定一個預設值,當來源端有傳入該資料時,使用來源端的資料,沒有傳入時,則依照設定的預設值來進行運算,如下範例: 範例中沒有傳入日期參數資料,所以 函式 使用預設值 (2019

[Python教學]Python Unpacking實用技巧分享

Photo by Andrew Neel on Unsplash Python 相較於其他程式語言,以能夠用簡潔的語法來達到相同的運算聞名,本篇要來教大家的 Python Unpacking 技巧,就是讓您在操作像 串列 (List) 、 元組 (Tuple) 及 字典 (Dictionary) 等 可疊代的 資料型態時,能夠用簡潔且有效率的語法來取出其中的元素,進而做其他更複雜的運算。 Unpacking 顧名思義就是將打包好的資料取出來,這邊整理了五個使用的情境 ,包含了: List Unpacking( 串列開箱 ) Tuple Unpacking( 元組開箱 ) For-Loop Unpacking( 迴圈開箱 ) Swapping Variables Value( 交換變數值 ) Unpacking Operator( 開箱運算子) 一、 List Unpacking( 串列開箱 ) 在一般的情況下,我們要存取 串列 (List) 中的資料並且指派給變數時,通常會像下面範例這樣做: 這種寫法當我們要指派的變數越多時, 就會顯得沒有效率,這時候就能夠使用 Unpacking 的技巧,將 串列 (List) 中的資料指派給多個變數,如下範例。 這樣程式碼是不是簡潔多了呢。範例中有一個需要特別要注意的地方, 串列 (List) 中的資料個數要與變數的個數一致,不然會發生例外錯誤。 當串列中有大量的資料時,則可以獨立定義所需的變數個數來透過 Unpacking 的方式來指派資料,剩下的元素則可以使用 * 符號來進行打包的動作,如下範例: 另一種變形的應用就是可取得 串列 (List) 中第一個元素及最後一個元素,剩下的同樣可以用 * 符號打包起來,如下範例: 二、 Tuple Unpacking( 元組開箱 ) 串列 (List) 的Unpacking技巧同樣可以使用於 元組 (Tuple) ,除了 可以 將 資料指派給多個變數外,也可以彈性的運用 * 符號來處理大量的資料,如下範例。 三、 For-Loop Unpacking( 迴圈開箱 ) 舉例來說,當我們透過 Python的For-Loop迴圈 讀取 串列 (List) 中的元素時,想要同時取