python3筆記6 函式的使用

2021-10-12 07:45:58 字數 4736 閱讀 8916

1、定義函式:

def 函式名(引數列表):

​ 函式體

形參–函式完成其工作所需的一項資訊

實參–呼叫函式時傳遞給函式的資訊

def

name

(username)

:#函式內部的引數為形參

print

('姓名:'

, username.title())

name(

'alice'

)#呼叫函式時,傳遞給函式的資訊

輸出:姓名: alice

2、引數傳遞:

①位置引數:傳入的引數(實參)按照形參的順序傳遞。

注1:若是實參型別是同一型別,則結果會與預期不符。

注2:如果實參型別是不同型別,且沒有按照順序傳遞實參則會在程式執行過程中報錯。

②關鍵字引數:傳入引數(實參)可以不考慮順序。在傳入實參時將名稱與值關聯。

例:讓輸出結果為name為alice,輸出結果age為20。

def

name

(username,age)

:print

('name:'

, username.title())

print

('age:'

, age)

name(age =

20,username =

'alice'

)#按照關鍵字傳入實參不需要考慮順序

輸出:

name: alice

age: 20

③預設引數:在定義函式時,直接給其中乙個引數乙個預設的值,若呼叫函式的時候沒有傳遞這個引數,則採用預設值。

def

name

(username,age =18)

:print

('username:'

, username.title())

print

('age:'

, age)

'''函式的重複呼叫'''

name(

'alice',20

)#使用函式呼叫時傳入的引數

print

('\n'

)name(

'alice'

)#使用預設引數

輸出:

username: alice

age: 20

username: alice

age: 18

④等效的函式呼叫:位置引數、關鍵字引數、預設引數可混合使用。

⑤不定長引數:加了乙個星號(*)的引數會以元組(tuple)的形式匯入。加了兩個星號(**)的引數會以字典(dictionary)的形式匯入。

例:以元組形式匯入

def

name

(username,

*hobby)

:print

('username:'

, username.title())

print

('hobby:'

, hobby)

name(

'tom'

)print

('\n'

)name(

'alice'

,'playgames'

,'football'

,'basketball'

)

輸出:

username: tom

hobby: ()

username: alice

hobby: ('playgames', 'football', 'basketball')

注:例如上述當沒有給*hobby指定引數時,它就是乙個空的元組。

例:以字典形式匯入

def

name

(username,

**hobby)

:print

('username:'

, username.title())

print

('hobby:'

, hobby)

name(

'tom'

)print

('\n'

)name(

'alice'

,intersting =

'playgames'

,hobby =

'football'

)

輸出:

username: tom

hobby: {}

username: alice

hobby:

⑥傳遞列表

向函式中傳遞引數列表,列表可能是名字、數字、或者更複雜的物件(比如:字典)。將列表傳遞給函式後,就可以之間訪問其中的內容。

def

users

(usernames)

:for name in usernames:

message =

"hello,"

+ name.title(

)print

(message)

names =

['alice'

,'tom'

,'jack'

,'rose'

]users(names)

#呼叫函式將列表傳輸其中,並且直接訪問

輸出:

hello,alice

hello,tom

hello,jack

hello,rose

3、匿名函式

使用lambda來建立匿名函式,匿名函式是指不在使用def語句這樣的標準形式定義函式。

①lambda簡述:

★lambda只是乙個表示式,函式體比def簡單的多。

★lambda的主體是乙個表示式,而不是乙個**塊。僅能在lambda表示式中封裝有限的邏輯進去。

★lambda函式擁有自己的命名空間,且不能訪問自己引數列表之外或全域性命名空間裡的引數。

②語法結構

lambda [引數1[,引數2,…引數n]]:表示式

例:

#使用lambda定義函式

sum=

lambda a,b : a + b

#呼叫sum函式

print

('add:'

,sum(2

,3))

輸出:add: 5

4、返回值(return):以舉例形式說明

①返回簡單值:

def

name

(first_name,last_name)

: full_name = first_name +

' '+ last_name

return full_name.title(

)#使用renturn返回簡單值

username = name(

'thomas'

,'edison'

)print

(username)

輸出:thomas edison

②利用條件控制語句使得實參變成可選的

def

name

(first_name,last_name,middle_name ='')

:#使用預設引數,並且置為空字元,使得引數可選

if middle_name:

full_name = first_name +

' '+ middle_name +

' '+ last_name

else

: full_name = first_name +

' '+ last_name

return full_name.title(

)username1 = name(

'thomas'

,'edison'

,'alva'

)print

(username1)

username2 = name(

'thomas'

,'tom'

)print

(username2)

輸出:

thomas alva edison

thomas tom

③返回字典

def

name

(first_name,last_name)

: person =

#使用變數儲存為字典的形式

return person

username = name(

'thomas'

,'edison'

)print

(username)

輸出:

python3筆記 函式

建立函式 def 函式名 引數列表 函式語句 函式的命名規則 乙個單詞直接小寫 多個單詞,每個單詞小寫,以下劃線分隔 文件化說明 函式首行加 或 使用函式名.doc 屬性 可以檢視函式文件 help 函式名 callable 函式名 判斷函式是否可以被呼叫 pass 佔位 引數預設引數 預設值最好是...

python3筆記3 容器的使用(2)

一 字典 字典是一種可變的容器模型,且可儲存任意型別的物件。字典的每個鍵值key與value對之間用冒號 進行分割。每個對之間用 分割。整個字典包含在花括號 之中。格式如下所示 dict 字典中的key值是唯一的,但是value則不一定。value值可以是任意資料型別的,但是key鍵是不可變的。1 ...

python3 筆記1 變數

變數 可變的量,區別於常量,常量為固定不可變的量 變數的定義方式 變數名 value 例 a 1 多個變數的命名格式 變數名1,變數名2 value1,value2 例 a,b 1,2 刪除變數名格式 del 變數名 刪除後的變數名再也無法訪問 在定義變數名時盡量做到見名知意,例如 你定義乙個變數為...