1. 程式人生 > >python之路-----函式

python之路-----函式

文章目錄

語法定義

#改成用函式寫
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’這種形式的引數,函式中此引數的個數可為任意個.。
正常情況下,給函式傳引數要按順序,不想按順序就可以用關鍵引數,只需指定引數名即可,但記住一個要求就是,關鍵引數必須放在位置引數之後