python之路-----函式
阿新 • • 發佈:2019-01-01
文章目錄
語法定義
#改成用函式寫
def summ(x,y)::#函式名
res = x+y
return res
c = summ(a,b)#呼叫函式
print(c)
預設引數
def stu(country="CN"):
pass
非固定引數
若你的函式在定義時不確定使用者想傳入多少個引數,就可以使用非固定引數。
*args 會把多傳入的引數變成一個元組形式
def stu_register(name,age,*args): # *args 會把多傳入的引數變成一個元組形式
print(name,age,args)
stu_register("Alex",22)
#輸出
#Alex 22 () #後面這個()就是args,只是因為沒傳值,所以為空
stu_register("Jack",32,"CN","Python")
#輸出
# Jack 32 ('CN', 'Python')
還可以有一個**kwargs
**kwargs 會把多傳入的引數變成一個dict形式
def stu_register(name,age,*args,**kwargs): # *kwargs 會把多傳入的引數變成一個dict形式
print(name,age,args,kwargs)
stu_register("Alex",22)
#輸出
#Alex 22 () {}#後面這個{}就是kwargs,只是因為沒傳值,所以為空
stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong")
#輸出
# Jack 32 ('CN', 'Python') {'province': 'ShanDong', 'sex': 'Male'}
匿名函式 lambda
匿名函式就是不需要顯式的指定函式
#這段程式碼
def calc(n):
return n**n
print(calc(10))
#換成匿名函式
calc = lambda n:n**n
print(calc(10))
匿名函式主要是和其它函式搭配使用的呢,如下
res = map(lambda x:x**2,[1,5,7,4,8])
for i in res:
print(i)
輸出
1
25
49
16
64
高階函式
變數可以指向函式,函式的引數能接收變數,那麼一個函式就可以接收另一個函式作為引數,這種函式就稱之為高階函式。
def add(x,y,f):
return f(x) + f(y)
res = add(3,-6,abs)
print(res)
關鍵引數
def person(name,**kw)
其中
name為位置引數,只傳入一個變數。
kw為關鍵引數,關鍵字傳入的為dict變數。傳入的是一個類似city='Beijing’這種形式的引數,函式中此引數的個數可為任意個.。
正常情況下,給函式傳引數要按順序,不想按順序就可以用關鍵引數,只需指定引數名即可,但記住一個要求就是,關鍵引數必須放在位置引數之後。