python語法之函數

1、什麼是函數函數

函數相似於一種工具,能夠重複調用。工具

2、爲何要用函數spa

防止代碼的冗餘;代碼的可讀性差。code

3、使用方法blog

3.1it

1 定義函數----->make a wapenclass

2 調用函數----->use it容器

## 函數的命名規範和變量名同樣,須要具備意義。變量

4、函數的三種分類方法

4.1 無參函數

def func():    # ()沒有參數
    print('hello world')
func()

 

4.2 空函數

def func2():     
    pass     #代碼塊先用pass代替, 空函數
func2()

 

4.3 有參函數

def func1(a,b):    # ()有參數, 有參函數
    print(a,b)
func1(1,2)   # a= 1 b =2

 

4.4把函數名賦值給變量

def func3():
    print('小豬皮蛋')
f = func3    #經過把函數名賦值給變量f,調用f也能調用函數
f()

 

5、函數的返回值

5.1 不寫return:返回none

def u():
    print(1)
# u()        # 1
print(u())     #None

5.2 只寫return:只有結束代碼的效果,返回none

def u():
    print(1)
    return
# u()        # 1
print(u())     #None

5.3 寫return none:與上一條同樣效果

def u():
    print(1)
    return None
# u()        # 1
print(u())     #None

5.4 return 返回一個值:能夠將返回的結果當作一個變量名使用

def s(a,b):
   return a,b
s(1,2)     #看不見結果
d = s(1,2)  #  把函數的結果給變量d就能夠看見結果
print(d)   #(1, 2)

5.5 return 返回多個值:  5.5.1 將返回的多個值默認存入元祖返回

                                        5.5.2 函數的返回不想被修改

                                        5.5.3 能夠本身指定返回的類型

def func1():
    return 1, "2"
print(func1())   #(1, '2') 返回元祖
a = 1
b = 2
c = '3'
d = [4, 5]
e = {'name': 'sean'}
def func(a, b, c, d, e):
    return a, b, c, d, e
print(func(a, b, c, d, e))   #(1, 2, '3', [4, 5], {'name': 'sean'})   #返回指定類型

 

## return 是函數結束的標誌,函數體代碼,只要執行return,函數就執行結束。

 

6、函數的參數

6.1 參數類型

形參: 函數在定義階段就規定的參數,至關於定義變量時的變量名。

實參: 函數在調用階段傳入的參數,至關於定義變量時的變量值。

def foo(a):    #a就是形參
    print(a)
foo(1)   #1就是實參

 

6.2 傳參方式

6.2.1  位置參數: 經過位置進行傳參。

def s(a,b):
    return a,b
print(s(1,2))   #(1, 2) a=1 b=2

6.2.2  關鍵字參數: 指定參數進行傳參。

def s(a,b):
    return a,b
print(s(b=1,a=2))   #(2, 1)  b=1,a=2

6.2.3  默認參數: 在定義函數階段就已經傳入參數,若是在實參時傳入一個新參數,就會使用新參數。***不能將可變類型當參數傳遞。

def s(a,b,c=3):
   return a,b,c
s(1,2)
print(s(1,2))  #(1, 2, 3)默認把c=3也傳出來
def s(a,b,c=3):
   return a,b,c
# s(1,2,c=4)
print(s(1,2,c=4))  #(1, 2, 4)指定c=4時,就把指定值傳出來

6.2.4  可變長參數

6.2.4.1  *args  : 接收全部溢出的位置參數,接收的值都被存入一個元祖。

示範:

 

 

 

 

 

解決方法:

# *args
def f(a,b,*args):    #接收溢出位置參數
    print(a,b,args)    #  args 會把溢出的參數存入一個元祖
f(1,2,3,4,5)   #1 2 (3, 4, 5)  
def f(a,b,*args):     #接收溢出位置參數
    print(a,b,*args)   #  args 會把溢出的參數打散
f(1,2,3)   #1 2 3

 

6.2.4.2  **kwargs  : 接收因此溢出的關鍵字參數,接收的值都被存入一個字典。

示範:

 

 

 

 

 

解決方法:

# **kwargs
def f(a, b, **kwargs):
    print(a, b, kwargs)  # kwargs:  會把溢出的參數以字典返回
f(1, 2, c=3)  # 1 2 {'c': 3}
def f(a, b, **kwargs):  # 接收溢出關鍵字參數
    print(a, b, *kwargs)  # *kwargs 會把溢出的參數以字典中的key返回
f(b=1, a=2, c=3)  # 2 1 c

 

##  * 的做用打散你傳入的容器類型

相關文章
相關標籤/搜索