您好,登錄后才能下訂單哦!
Python中的函數是什么?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
函數:函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。
函數的定義
定是函數使用def關鍵字
def myfunc(x): if x >= 0: return x else: return -x
空函數
def emptyfunc(): pass
參數檢查
def checkfunc(x): if not isinstance(x,(int,float)): raise TypeError("must be int or float type!") if x >= 0: return x else: return -x
返回多個值
def price(x): apple=x*2 banana=x*2.5 return apple,banana a,b=price(1)
函數的參數
必選參數parameter
def printdetail1(name,age,telephone): print("姓名:",name) print("年齡:",age) print("電話:",telephone) printdetail1("Jack",12,12356435678)
默認參數parameter=value
def printdetail2(name,age,telephone,gender='fale'): print("姓名:",name) print("性別:",gender) print("年齡:",age) print("電話:",telephone) printdetail2("Jack",12,12356435678,gender='female')
可變參數*
1.不定長傳參
def fun1(*number): for i in number: print(i)fun1(1,2,3,4,5,6,7,8)
2.元組和列表的壓包
def fun2(*number): s=0 for i in number: s+=i print(s) fun2(*[1,2,3,4,5]) fun2(*(1,2,3,4,5))
關鍵參數**
使用方法一
def fun(id,name,**kargs): print("id:",id) print("name:",name) print("others:",kargs) fun(2,"xiaohua",sex="man",age='12')
使用方法二
extra={'sex': 'man', 'age': 12} def fun(id,name,**kargs): print("id:",id) print("name:",name) print("others:",kargs) fun(2,"xiaohua",sex=extra['sex'],age=extra['age'])
使用方法三
extra={'sex': 'man', 'age': 12} def fun(id,name,**kargs): print("id:",id) print("name:",name) print("others:",kargs) fun(2,"xiaohua",**extra)
關鍵字參數*
def fun(name,age,*,city,job,completion): print("name:",name) print("age:",age) print("city:",city) print("job:",job) print("completion:",completion) fun('Jack',12,city='shanghai',job='teacher',completion=True)
命名關鍵字參數需要一個特殊分隔符*,后面的參數被視為命名關鍵字參數
如果函數定義中已經有了一個可變參數,后面跟著的命名關鍵字參數就不再需要一個特殊分隔符*了
參數組合
def fun(parameter,*args,keyparameter,**kargs): print(parameter) print(args) print(keyparameter) print(kargs) fun(1,*(1,2,3,4),keyparameter=True,**{'id':2})
參數定義的順序必須是:必選參數、默認參數、可變參數、命名關鍵字參數和關鍵字參數
函數的遞歸
#階乘計算 def fact(n): if n == 1: return 1 return n * fact(n-1)
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。