您好,登錄后才能下訂單哦!
這篇文章主要介紹了python的函數形參和返回值是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇python的函數形參和返回值是什么文章都會有所收獲,下面我們一起來看看吧。
一個函數執行后可以返回多個返回值
def measure(): print('測量開始。。。。') temp=39 wetness=50 print("測量結束") #元組--可以包含多個數據,因此可以使用元組一次返回多個值 return (temp,wetness) result=measure() print(result)
運行結果:
測量開始。。。。
測量結束
(39, 50)
def measure(): print('測量開始。。。。') temp=39 wetness=50 print("測量結束") #元組--可以包含多個數據,因此可以使用元組一次返回多個值 return (temp,wetness) #如果函數返回的類型是元組,同時希望單獨的處理元組中的元素 #可以使用多個變量,一次接收函數的返回結果 #使用多個變量接收結果時,變量的個數應該和元組的元素個數一致 gl_temp,gl_wetness=measure() print(gl_temp) print(gl_wetness)
運行結果:
測量開始。。。。
測量結束
(39, 50)
交換兩個變量的值
a=6 b=100 #使用其他變量 c=a a=b b=c #不使用其他變量 a=a+b b=a-b a=a-b #python專有 a,b=b,a print("a的值為 %d"%a) print("b的值為 %d"%b)
在函數內部,針對參數使用賦值語句,不會改變調用函數時傳遞的實參的值
無論傳遞的參數是可變還是不可變,只要針對參數使用賦值語句,會在函數內部修改局部變量的引用,不會影響到外部變量的引用
def demo(num,num_list): print("函數內部") #在函數內部,針對參數使用賦值語句,形參的引用發生了變化,但是實參的引用沒變 num=200 num_list=[1,2,3] print(num) print(num_list) print("函數內部代碼完成") gl_num=99 gl_list=[2,3,4] demo(gl_num,gl_list) print(gl_num) print(gl_list)
運行結果:
函數內部
200
[1, 2, 3]
函數內部代碼完成
99
[2, 3, 4]
如果傳遞的參數是可變類型,在函數內部,使用方法修改了數據的內容,同樣會影響到外部的數據
def demo(num_list): print("函數內部") num_list.append([1,2,3]) print(num_list) print("函數內部代碼完成") gl_list=[2,3,4] demo(gl_list) print(gl_list)
運行結果:
函數內部
[2, 3, 4, [1, 2, 3]]
函數內部代碼完成
[2, 3, 4, [1, 2, 3]]
在python中,列表變量調用+=本質上在執行列表變量的extend方法,不會修改變量的引用
def demo(num,num_lst): print("函數開始") num+=num num_lst+=num_lst print(num) print(num_lst) print("函數結束") gl_num=9 gl_list=[1,2,3] demo(gl_num,gl_list) print(gl_num) print(gl_list)
運行結果:
函數開始
18
[1, 2, 3, 1, 2, 3]
函數結束
9
[1, 2, 3, 1, 2, 3]
定義函數時,可以給某個參數指定一個默認值,具有默認值的參數就叫做缺省參數
調用函數時,如果沒有傳入缺省參數的值,則在函數內部使用定義函數時指定的參數默認值
(1)指定函數的缺省參數
在參數后使用賦值語句,可以指定參數的缺省值
def print_info(name,gender=True): gender_text="男生" if not gender: gender_text="女生" print("%s 是 %s"%(name,gender_text))
(2) 提示
缺省參數,需要使用最常見的值作為默認值
如果一個參數的值不能確定,則不應該設置默認值,具體的數據在調用函數時,由外界傳遞
(3) 缺省參數的注意事項
1.缺省參數的定義位置
必須保證帶有默認值的缺省參數在參數列表的末尾
2.調用多個缺省參數的函數
在調用函數時,如果有多個缺省參數,需要指定參數名,這樣解釋器才能夠知道參數的對應關系
有時候可能需要一個函數能夠處理的參數個數是不確定的,這個時候,就可以使用多值參數
python中有兩種多值參數:
參數名前增加一個* ,可以接收元組
參數名前增加兩個*,可以接受字典
一般在給多值參數命名時,習慣使用以下兩個名字:
*args----存放元組參數
**kwargs—存放字典參數
def demo(*args,**kwargs): print(args) print(kwargs) demo(1,2,3,4,name="test1",age=14)
運行結果:
(1, 2, 3, 4)
{'name': 'test1', 'age': 14}
可以看到1,2,3,4被組成了一個元組
name=“test1”,age=14,被組成了一個字典
#計算任意個數之和 def sum_args(*args): sum=0 for n in args: sum+=n return sum result=sum_args(1,2,3,4,6) print(result)
在調用帶有多值參數的函數時,如果希望:
將一個元組變量,直接傳遞給args
將一個字典變量,直接傳遞給kwargs
就可以使用拆包,簡化參數的傳遞,拆包的方式是:
在元組變量前,增加一個*
在字典變量前,增加兩個**
#如果不拆包,將gl_args,gl_kwargs組成一個元組 def demo(*args,**kwargs): print(args) print(kwargs) gl_args=(1,2,3,4) gl_kwargs={"name":"test1","age":12} demo(gl_args,gl_kwargs)
運行結果:
((1, 2, 3, 4), {'name': 'test1', 'age': 12}) {}
如果不拆包,將gl_args,gl_kwargs組成一個元組,正確的傳遞方式應該是:demo(1,2,3,4,name=“test”,“age”=12)
但是實參是元組和字典,需要將元素一個一個拆開,所以需要使用拆包
正確的使用方式:
def demo(*args,**kwargs): print(args) print(kwargs) gl_args=(1,2,3,4) gl_kwargs={"name":"test1","age":12} demo(*gl_args,**gl_kwargs)
運行結果:
(1, 2, 3, 4)
{'name': 'test1', 'age': 12}
關于“python的函數形參和返回值是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“python的函數形參和返回值是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。