標籤:col 基礎 必須 列表 傳遞 字串 輸出 strong none
函數
定義了之後,可以在任何需要它的地方調用
傳回值
傳回值的3種情況
沒有傳回值 —— 返回None
不寫return
唯寫return:結束一個函數的繼續
return None —— 不常用
返回1個值
可以返回任何資料類型
只要返回就可以接收到
如果在一個程式中有多個return,那麼只執行第一個
返回多個值
用多個變數接收:有多少傳回值就用多少變數接收
用一個變數接收: 得到的是一個元組
return結束函數
1 #唯寫return:結束一個函數的繼續,不會輸出print(‘=‘*10) 2 #和break的區別,break是跳出迴圈,return是結束函數 3 def func(): 4 l = [‘哈哈‘,‘哦哦‘] 5 for i in l: 6 print(i) 7 if i==‘哦哦‘: 8 return 9 print(‘=‘*10)10 ret = func()11 print(ret)
傳回值
1 def func(): 2 return {‘k‘:‘v‘} 3 print(func()) 4 5 def func2(): 6 return 1,2,3 #return 1,2,3 7 r1,r2,r3 = func2() 8 print(r1,r2,r3)#三個接受 9 10 r= func2()#一個變數接受11 print(r)#輸出元組
參數
沒有參數
定義函數和調用函數時括弧裡都不寫內容
有一個參數
傳什麼就是什麼
有多個參數
位置參數
站在實參的角度上:
按照位置傳參
按照關鍵字傳參
混著用可以:但是 必須先按照位置傳參,再按照關鍵字傳參數
不能給同一個變數傳多個值
站在形參的角度上:
位置參數:必須傳,且有幾個參數就傳幾個值
預設參數: 可以不傳,如果不傳就是用預設的參數,如果傳了就用傳的
只有調用函數的時候:
按照位置傳 : 直接寫參數的值
按照關鍵字: 關鍵字 = 值
定義函數的時候:
位置參數 : 直接定義參數
預設參數,關鍵字參數 :參數名 = ‘預設的值‘
動態參數 : 可以接受任意多個參數
參數名之前加*,習慣參數名args,
參數名之前加**,習慣參數名kwargs
順序:位置參數,*args, 預設參數, **kwargs
參數
1 def my_len(s): #自訂函數只需要0個參數,接收參數,形式參數,形參2 i = 03 for k in s:4 i += 15 return i #傳回值6 7 ret = my_len(‘金老闆小護士‘) #傳遞參數:傳參,實際參數,實參8 ret = my_len([1,2,3,4,5]) #傳遞參數:傳參9 print(ret)
一個參數
1 def f2(l1): 2 f1(l1) 3 for i in l1: 4 print(i) 5 6 def f1(l1): 7 for i in l1: 8 print(i) 9 10 f2([1,2,3,4])
多參數
1 def classmate(name,sex):2 print(‘%s : %s‘%(name,sex))
預設參數
1 classmate(‘二哥‘,‘男‘)2 classmate(sex=‘男‘,name = ‘二哥‘)3 4 def classmate(name,sex=‘男‘):5 print(‘%s : %s‘%(name,sex))6 7 classmate(‘二哥‘)8 classmate(‘朗哥‘,sex= ‘女‘)
動態參數:可以接受任意多個參數
*args : 接收的是按照位置傳參的值,組織成一個元組**kwargs: 接受的是按照關鍵字傳參的值,組織成一個字典
動態參數 *args #可以接受任意多個參數
1 def sum(*args): #參數名之前加*,習慣參數名args2 n = 03 for i in args:4 n+=i5 return n6 7 print(sum(1,2))8 print(sum(1,2,3))9 print(sum(1,2,3,4))
動態參數 **kwargs #可以接受任意多個參數
1 def func(**kwargs): #參數名之前加**,習慣參數名kwargs2 print(kwargs)3 4 func(a = 1,b = 2,c =3)5 func(a = 1,b = 2)6 func(a = 1)
動態參數有兩種:可以接受任意個參數
1 *args : 接收的是按照位置傳參的值,組織成一個元組2 **kwargs: 接受的是按照關鍵字傳參的值,組織成一個字典3 args必須在kwargs之前4 5 def func(*args,default = 1,**kwargs):6 print(args,kwargs)7 8 func(1,2,3,4,5,default=2,a = ‘aaaa‘,b = ‘bbbb‘,)
動態參數的另一種傳參方式
1 def func(*args):#站在形參的角度上,給變數加上*,就是組合所有傳來的值。 2 print(args) 3 4 func(1,2,3,4,5) 5 l = [1,2,3,4,5] 6 func(*l) #站在實參的角度上,給一個序列加上*,就是將這個序列按照順序打散 7 8 def func(**kwargs): 9 print(kwargs)10 11 func(a=1,b=2)12 d = {‘a‘:1,‘b‘:2} #定義一個字典d13 func(**d)
函數的注釋
1 def func():2 ‘‘‘3 這個函數實現了什麼功能4 參數1:5 參數2:6 :return: 是字串或者列表的長度7 ‘‘‘8 pass
python 基礎---函數