您好,登錄后才能下訂單哦!
本篇內容主要講解“python的函數參數怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python的函數參數怎么使用”吧!
這是一個求等差數列和的函數,使用必需要傳入一個參數n,這就是位置參數
def sum(n): sum=0 i=1 while i<=n: sum+=i i+=1 return sum result=sum(100) print(result)
默認參數就是,我在函數中已經將一個參數提前設置好了值,如果你沒有傳入這個參數的值,就會用我事先設置好的值,如果你傳入了就用你的
我這里定義了一個求x的y次方的方法
def power(x,y=2): return x**y print(power((2))) print(power(2,3))
def printmessage(name,age,*args,gender): print(name,age,args,gender) print(type(args)) printmessage("趙四",40,12345456,"男")
首先來看一下這個問題,我把一個多值參數寫在了一個位置參數的前面這會發生什么事情?
報錯信息:找不到”gender“這個字段對應的值
printmessage("趙四",40,12,34,54,56,"男")
*args是一個多值參數,他把后面所有的值都給收納了,所以我們傳入值得時候,需要把對應參數名也寫上,這樣才能識別這是單獨一個參數的值
def printmessage(name,age,*args,gender): print(name,age,args,gender) print(type(args)) printmessage("趙四",40,12,34,54,56,gender="男")
這個關鍵字參數還有什么用處呢,只要指定了參數名,我們可以不按函數里面設置的參數順序傳入值,但是一旦這樣打亂順序,多值參數就無法識別出哪里是他可以接收值的地方,所以我就傳入了其他3個參數
def printmessage(name,age,*args,gender): print(name,age,args,gender) print(type(args)) printmessage(age=45, gender='男', name='劉能')
可能有人不相信上面的結論
我隨便放哪個位置都是不能識別的
最后一個情況沒有報錯,但是這個語法是錯誤的,他會認定你傳入的1就是name,但是后面再次出現了name,并且缺少值得問題還是沒解決
那我們試試用args接收一個元組試試?
printmessage(age=45, gender='男', name='劉能',args=(1,2,3,4))
很遺憾,根本無法識別這個關鍵字
所以打亂順序傳值的時候千萬別有多值參數
可變參數分為2種
接收元組參數:*args 一個*的是接收多個數據放入元組
接受字典參數:**args 兩個*的接受的是k=v類型的數據,將他們放入一個字典
元組:
def sumN(*args): # args是參數名 # 要操作傳入的參數 可以對args(相當于有參數構成的tuple)進行遍歷 print(args, type(args)) sum = 0 for i in args: sum += i print(sum) sumN(1,2,3,5)
元組注意的事項就是,如果有參數在接受元組參數的后面,要用關鍵字參數傳值
字典:
def printmessage(name,age,gender,**kw): print(name,age,gender,kw) print(type(kw)) printmessage("趙四",40,"男",address="象牙山",phonenumber="888888")
傳入字典的多值參數后面是不能跟參數的,他只能放在函數參數的最后一個位置
還有,想用關鍵值傳遞的,傳入的時候別亂調位置,要是到了**args的范圍,就少了一個參數
到此,相信大家對“python的函數參數怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。