'''
函數:
1、減少代碼重用性
2、易維護
3、可擴展性強
4、類型function
定義函數:
def 函數變量名():
函數的調用:
1、函數名加括號
2、函數如果沒被調用,不會去執行函數內部的代碼
函數的返回值:
1、函數如果沒有return 默認返回None(add()=None)
2、函數通過 關鍵字 return 返回 值
3、函數執行時,遇到return,退出函數的執行,並返回結果
4、函數 return 能 return多個值, 把多個值 組成一個 元祖返回
l = [1,2,2,22,2,2,2,]
def add():
s = 0
return [1, 2, 3, 4,5 ,6 , 7, format, False, {}, (), [], "", None]
c = add()
'''
'''
函數的參數:
形參:
位置參數:
1、函數定義位置參數后,調用函數時,有幾個位置參數,就得傳幾個實參
2、位置參數與實參 一一對應
默認參數(給予初始值):
1、函數在定義形參時,指定參數的 值 叫默認參數
2、調用函數時,默認參數可以不用傳
3、調用函數時,如果傳入 值 給默認參數,那默認參數的值 就是 傳入的 值
4、默認參數必須在 位置參數的右邊(實參中也一樣,但是順序可變。如:)
def func(x,y,z,l):
return(x+y+z+l)
print(func(1,2,l=3,z=8)) 打印結果為14
可變長參數:
*args:
1、能接受任意類型參數,把接收的參數組成一個元祖()
def func(x,*args): 打印結果:
print(x) 1
print(args) ([1,2,3],)
func(1,[1,2,3])
2、*iterable(能被for循環的對象)
*[1,2,3], 會把列表for循環后,把循環出的參數一個個的給到args,如下:
def func(x,*args): 打印結果:
print(x) 1
print(args) (1,2,3)
func(1,*[1,2,3])
3、調用函數時,args可以不用傳(args默認為元祖())
def func(x,*args): 打印結果為:
print(x) 1
print(args) ()
func(1)
**kwargs:
1、把接收的參數組成一個字典{}(一般參數為賦值表達式)
def func(x,**kwargs): 打印結果為:
print(args) {'c': 3, 'b': 2, 'a': 1}
func(1,a=1,b=2,c=3)
2、**{"2":2, "3":3, "hello":[]} 循環字典的 key value,組成鍵值對 給到kwargs
def func(x,**kwargs): 打印結果為:
print(kwargs) {'2': 2, '3': 3, 'hello': []}
func(1,**{"2":2, "3":3, "hello":[]})
3、調用函數時,kwargs可以不用傳(默認為{})
def func(x,**kwargs): 打印結果為:
print(x) 1
print(kwargs) {}
func(1)
'''