一、定義函數 def 函數名(): 函數體代碼 例: #定義函數 def email(): print('send email') #調用執行函數 email() 二、函數的返回值 def email(): print("send email") return "發送成功" #沒有return,預設 ...
一、定義函數 def 函數名():
函數體代碼
例:
#定義函數
def email():
print('send email')
#調用執行函數
email()
二、函數的返回值
def email():
print("send email")
return "發送成功" #沒有return,預設返回None
ret = email() #函數return後面是什麼值,ret等於返回值
print(ret)
註意:一旦遇到return,函數內部return以下的代碼不再執行。
三、函數的普通參數
def email(address): #address為形式參數
print(address)
return True
ret = email('[email protected]') #調用執行傳值,為實際參數
#傳參,預設是按順序傳值,也可以指定形參傳入實參,就可以不按順序
四、函數的預設參數
#註意:有預設值的參數要放在後面
def email(name, address="[email protected]"): #name、address為形式參數,address有預設值為[email protected]
print(name, address)
return True
五、函數的動態參數
1)簡單的動態參數
#註意:加上一個*號,即可成為動態形式參數,轉換元組;加上兩個**號時,轉換成字典
def email(*addr, **address):
print(addr)
print(address)
email(11, 22, 33, k1 = 123, k2 = 456) #在動態函數參數中,可以傳入多個參數
結果:
(11,22,33)
{'k1':123, 'k2': 456}
2)為動態參數傳入列表、字典或元組
2.1)實參傳入列表
def f1(*args):
print(args)
li = [11,22,33,44] #列表
f1(li) #結果為[11,22,33,44]
f1(*li) #結果為(11,22,33,44),註意在傳入實參時,加入*號
2.2)實參傳入字典
def f2(**kwargs):
print(kwargs)
dic = {'k1':789} #傳入字典
f2(dic) #結果報錯
f2(**dic) #結果為{'k1':789},註意在傳入實參時,加入**號
註意:python語言傳參,傳入的引用。
六、全局變數、局部變數
P = "python" #p為全局變數,變數名一般大寫,可以共用使用
def func():
a = 123 #a 為局部變數,變數名一般小寫,只能在func()函數中使用
#如果在函數內想修改全局變數,則需要使用關鍵字global
global P
P = "java" #全局變數P的值被修改為"java"
print(a) #結果為123
print(P) #func()函數可以使用全局變數
七、lambda表達式
lambda表達式,通常是在需要一個函數,但是又不想費神去命名一個函數的場合下使用,也就是指匿名函數
a.lambda表達式的創建
函數名 = lambda: 函數體
實例一:
func = lambda: 123
r = func()
print(r) #結果為: 123
實例二:
add = lambda x, y : x+y
add(1,2) # 結果為3