懶懶的Python學習筆記七

2021-08-13 23:58:33 字數 2781 閱讀 6827

在本章節中將學習編寫函式,所謂函式是帶有名字的完成特定功能的**塊。要執行函式定義的特定任務,可以呼叫該函式,所以在程式中將完成特定功能的部分寫成函式,這樣在多次執行同一任務的時候就無需反覆編寫**了。

下面是乙個列印『hello world!』的簡單函式:

這裡演示了最簡單的函式結構,首先使用def關鍵字來告訴python定義乙個函式,在上例中定義了乙個greet()的函式,括號()的作用是給出函式完成指定工作的時候需要傳遞的引數,在這裡greet()函式不需要任何資訊就能完成工作,因此括號內為空(即使如此,括號也不能省略),定義以冒號(:)結尾

。緊跟定義行之後的所有縮排構成函式體,在這裡print 『hello world!』是唯一的函式體,完成的工作也就是列印這段話。要使用這個函式,可呼叫它,函式呼叫讓python執行這段**,要呼叫函式,可依次指定函式名以及括號和括號裡面傳遞的引數。

如果在上例函式中新增乙個姓名的引數,可以根據不同姓名輸出不同語句,現在我們做如下修改:

執行的結果如下:

在定義greet()函式的時候,要求給變數name乙個值,呼叫函式的時候提供乙個人名並列印相應的問候語!在函式的定義中,變數name是乙個形參,它是函式完成工作所需要的必要資訊。而在呼叫函式語句中的『lucy』,『naz』是實參,所謂實參是呼叫函式的時候傳遞的資訊。在我們呼叫函式的時候,將要讓函式使用的資訊放在括號內。例如:greet(『lucy』)中,實參『lucy』傳遞給了函式greet(),並且這個值儲存在了變數name中。

某些函式可能有多個形參,這時候要求我們在呼叫函式的時候傳遞多個實參。向函式傳遞實參的方式很多種,下面我們一一介紹:

位置實參

所謂位置實參是指傳遞的時候實參的位置與形參位置一一對應,每個實參都與乙個相同位置的形參對應,如下所示:

從這個函式的定義我們知道這個函式需要三個形參,分別是姓名、年齡和**,那麼按照位置實參的呼叫方式,我們呼叫的時候傳遞的實參要與形參一一對應,如果呼叫位置不正確可能會發生令人意想不到的情況。比如:

為了避免發生上述可笑的錯誤,請確認函式呼叫的實參順序和函式定義中形參順序一致!

關鍵字實參

關鍵字實參是才呼叫函式的時候直接指定名稱和值,這樣就可以不用擔心實參呼叫出錯了。

關鍵字實參的順序無關緊要,因為python知道哪個值儲存在哪個形參裡。

預設值編寫函式的時候,可以給每個形參賦予乙個預設值,這樣如果當函式呼叫的時候給形參提供了實參就使用實參的值,否則就使用預設值。需要注意的是,使用預設值的時候必須在形參列表中先列出沒有預設值的形參,再列出有預設值的形參

,這樣才能讓python準確讀取實參。

其實呼叫函式的方式有很多種,有時候可以混合使用位置實參、關鍵字和預設值等,對於乙個函式,可能存在多種的呼叫方式。

有時候函式並非只是完成諸如列印這樣的簡單的功能,更多的時候是對一些資料進行處理,最後返回乙個或者多個值。函式返回的值就是返回值,在python函式中用return語句將值返回到函式呼叫的**行。

簡單的返回值

呼叫有返回值的函式時候需要乙個變數來存數返回值。

讓實參變得可選

有的時候需要將實參變得可選,比如有的人名他不僅僅有first_name和last_name,他還可能有中間名,而有用的人則沒有中間名,這種時候就可以將中間名設定成可選項。

傳遞任意數量的實參

有時候可能預先不知道需要接收多少個實參,不過python允許函式的呼叫語句中收集任意數量的實參。

形參*fruits中的(*)號讓python建立乙個名為fruits的空元組,並將收到的所有實參都儲存到元組中,所以不管實參多少個,這種方法都管用。

結合使用位置實參和任意數量實參

如果要讓函式接受不同型別的實參,就必須在函式的定義中將接納到的任意數量的形參放在最後, python先匹配位置實參和關鍵字實參,再將餘下的實參都收集到乙個最後乙個實參中。

使用任意數量的關鍵字實參

有時候需要接受任意數量的實參,但是又不知道傳遞給函式的是什麼養的資訊,這種情況下,可以將函式編寫成能夠接受任意數量的鍵-值對,呼叫預計提供多少就接受多少,在下面的例子中,user_info函式不僅僅接受姓名,還接受其他使用者資訊。

形參**info中的兩個星號(**)讓python建立了乙個名為info的空字典,並將收到的所有名稱-值對都儲存在其中。

懶懶的Python學習筆記八

物件導向程式設計是最有效的程式設計方法之一,在物件導向程式設計中,你編寫表示現實世界中事物和情景的類,並基於這些類來建立物件。使用類來建立物件被稱為例項化。使用類可以模擬任何東西。下面的例項編寫乙個表示小狗的的簡單類dog 它表示的布設某個特定的小狗,而是任何小狗,編寫這個類後,我們將使用它來建立表...

懶懶的Python學習筆記十

在程式執行期間遇到錯誤,python會報錯。python使用被稱為 異常的特殊物件來管理程式執行期間發生的錯誤。每當發生乙個錯誤,python會建立乙個異常物件,如果你編寫了處理該異常的 程式將繼續執行,如果你未對異常進行處理,程式將停止並返回乙個trackback,其中包含有關異常的報告。異常通常...

Python學習筆記(七)

深淺拷貝 set 集合 函式a 1,2 3,4 b a.copy print b 結果 1,2 3,4 b 0 0 8 print a 結果 8,2 3,4 print b 結果 8,2 3,4 原理圖 去重關係測試 定義語法 s set in not in 集合等價與不等價 子集 s set al...