python第九天(自定義函數)
一、.函數:
如果檢測一個元素的長度用len非常簡單,也可以寫個循環來做。
s = ‘asd‘ def my_len(): i = 0 for k in s: i += 1 print(i) my_len()
二、.返回值:
如果print打印這個函數,結果返回None,如果想要有返回值的話就要用return i。
在函數裏遇到return直接退出函數。
return返回值的3種情況: 遇到return直接退出函數
沒有返回值: 返回None
1.不寫return
2.只寫return
3.return None
返回1個值:
1.可以返回任何數據類型
2.只要返回就可以接收到
3.如果在一個程序中有多個return,那麽只執行第一個return就退出函數
返回多個值:
1.用多個變量接收:有多少返回值就用多少變量接收
2.用一個變量接收:得到的是一個元祖
三、傳參函數
還是打印元素長度,但是元素不固定,可以自己輸入就需要用到傳參了。
def func(s): #行參 i = 0for j in s: i += 1 return i print(func(‘asdf‘)) #實參
通過s傳入參數。
參數:
沒有參數:定義函數和調用函數時括號裏為空。
有一個參數:傳什麽就是什麽
有多個參數:位置參數
參數分類:
行參:
順序:位置參數、*args、默認參數、**kwargs
位置參數:直接定義參數
默認參數(關鍵字參數):參數名 = ‘默認的值’ #如果實參裏也定義了,實參優先
動態參數:可以接受任意多個參數
#多個位置參數:*args 接收按照位置傳參的值,組成一個元祖。
#多個默認參數:**kwargs 接收按照默認傳參的值,組成一個字典。
實參:
按照位置傳參:位置參數需要幾個就傳幾個值,*args無限傳。
按照關鍵字傳參:如果行參有默認參數可以不傳值,傳了的按照實參的值運行,有**kwargs可以無限傳。
位置參數
def func(x,y): if x > y: print(x) else: print(y) func(3,2)
默認參數
def func(x=1,y=4): if x > y: print(x) else: print(y) func()
動態傳參
def func1(*args): print(args) func1(1,2,3) def func2(**kwargs): print(kwargs) func2(a = 1,b = 2,c = 3)
動態參數另一種傳參方式:傳入列表或字典。
def func1(*args): print(args) func1(1,2,3) l = [1,2,3] func1(*l) def func2(**kwargs): print(kwargs) func2(a = 1,b = 2,c = 3) d = {‘a‘:1,‘b‘:2,‘c‘:3} func2(**d)
四、函數註釋:
def func():
‘‘‘
這個函數實現了什麽功能
參數1:
參數2:
:return:
‘‘‘
python第九天(自定義函數)