python的函數(shù)形參和返回值你了解嗎
函數(shù)的返回值
一個函數(shù)執(zhí)行后可以返回多個返回值
def measure():
print('測量開始。。。。')
temp=39
wetness=50
print("測量結(jié)束")
#元組--可以包含多個數(shù)據(jù),因此可以使用元組一次返回多個值
return (temp,wetness)
result=measure()
print(result)
運行結(jié)果:
測量開始。。。。
測量結(jié)束
(39, 50)
def measure():
print('測量開始。。。。')
temp=39
wetness=50
print("測量結(jié)束")
#元組--可以包含多個數(shù)據(jù),因此可以使用元組一次返回多個值
return (temp,wetness)
#如果函數(shù)返回的類型是元組,同時希望單獨的處理元組中的元素
#可以使用多個變量,一次接收函數(shù)的返回結(jié)果
#使用多個變量接收結(jié)果時,變量的個數(shù)應(yīng)該和元組的元素個數(shù)一致
gl_temp,gl_wetness=measure()
print(gl_temp)
print(gl_wetness)
運行結(jié)果:
測量開始。。。。
測量結(jié)束
(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)
函數(shù)的參數(shù)
不可變參數(shù)和可變參數(shù)
在函數(shù)內(nèi)部,針對參數(shù)使用賦值語句,不會改變調(diào)用函數(shù)時傳遞的實參的值
無論傳遞的參數(shù)是可變還是不可變,只要針對參數(shù)使用賦值語句,會在函數(shù)內(nèi)部修改局部變量的引用,不會影響到外部變量的引用
def demo(num,num_list):
print("函數(shù)內(nèi)部")
#在函數(shù)內(nèi)部,針對參數(shù)使用賦值語句,形參的引用發(fā)生了變化,但是實參的引用沒變
num=200
num_list=[1,2,3]
print(num)
print(num_list)
print("函數(shù)內(nèi)部代碼完成")
gl_num=99
gl_list=[2,3,4]
demo(gl_num,gl_list)
print(gl_num)
print(gl_list)
運行結(jié)果:
函數(shù)內(nèi)部
200
[1, 2, 3]
函數(shù)內(nèi)部代碼完成
99
[2, 3, 4]
如果傳遞的參數(shù)是可變類型,在函數(shù)內(nèi)部,使用方法修改了數(shù)據(jù)的內(nèi)容,同樣會影響到外部的數(shù)據(jù)
def demo(num_list):
print("函數(shù)內(nèi)部")
num_list.append([1,2,3])
print(num_list)
print("函數(shù)內(nèi)部代碼完成")
gl_list=[2,3,4]
demo(gl_list)
print(gl_list)
運行結(jié)果:
函數(shù)內(nèi)部
[2, 3, 4, [1, 2, 3]]
函數(shù)內(nèi)部代碼完成
[2, 3, 4, [1, 2, 3]]
+=
在python中,列表變量調(diào)用+=本質(zhì)上在執(zhí)行列表變量的extend方法,不會修改變量的引用
def demo(num,num_lst):
print("函數(shù)開始")
num+=num
num_lst+=num_lst
print(num)
print(num_lst)
print("函數(shù)結(jié)束")
gl_num=9
gl_list=[1,2,3]
demo(gl_num,gl_list)
print(gl_num)
print(gl_list)
運行結(jié)果:
函數(shù)開始
18
[1, 2, 3, 1, 2, 3]
函數(shù)結(jié)束
9
[1, 2, 3, 1, 2, 3]
函數(shù)的參數(shù)
缺省參數(shù)
定義函數(shù)時,可以給某個參數(shù)指定一個默認值,具有默認值的參數(shù)就叫做缺省參數(shù)
調(diào)用函數(shù)時,如果沒有傳入缺省參數(shù)的值,則在函數(shù)內(nèi)部使用定義函數(shù)時指定的參數(shù)默認值
(1)指定函數(shù)的缺省參數(shù)
在參數(shù)后使用賦值語句,可以指定參數(shù)的缺省值
def print_info(name,gender=True):
gender_text="男生"
if not gender:
gender_text="女生"
print("%s 是 %s"%(name,gender_text))
(2) 提示
缺省參數(shù),需要使用最常見的值作為默認值
如果一個參數(shù)的值不能確定,則不應(yīng)該設(shè)置默認值,具體的數(shù)據(jù)在調(diào)用函數(shù)時,由外界傳遞
(3) 缺省參數(shù)的注意事項
1.缺省參數(shù)的定義位置
必須保證帶有默認值的缺省參數(shù)在參數(shù)列表的末尾
2.調(diào)用多個缺省參數(shù)的函數(shù)
在調(diào)用函數(shù)時,如果有多個缺省參數(shù),需要指定參數(shù)名,這樣解釋器才能夠知道參數(shù)的對應(yīng)關(guān)系
多值參數(shù)
有時候可能需要一個函數(shù)能夠處理的參數(shù)個數(shù)是不確定的,這個時候,就可以使用多值參數(shù)
- python中有兩種多值參數(shù):
參數(shù)名前增加一個* ,可以接收元組
參數(shù)名前增加兩個*,可以接受字典
- 一般在給多值參數(shù)命名時,習慣使用以下兩個名字:
*args----存放元組參數(shù)
**kwargs—存放字典參數(shù)
def demo(*args,**kwargs):
print(args)
print(kwargs)
demo(1,2,3,4,name="test1",age=14)
運行結(jié)果:
(1, 2, 3, 4)
{'name': 'test1', 'age': 14}
可以看到1,2,3,4被組成了一個元組
name=“test1”,age=14,被組成了一個字典
#計算任意個數(shù)之和
def sum_args(*args):
sum=0
for n in args:
sum+=n
return sum
result=sum_args(1,2,3,4,6)
print(result)
元組和字典的拆包
在調(diào)用帶有多值參數(shù)的函數(shù)時,如果希望:
將一個元組變量,直接傳遞給args
將一個字典變量,直接傳遞給kwargs
就可以使用拆包,簡化參數(shù)的傳遞,拆包的方式是:
在元組變量前,增加一個*
在字典變量前,增加兩個**
#如果不拆包,將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)
運行結(jié)果:
((1, 2, 3, 4), {'name': 'test1', 'age': 12})
{}
如果不拆包,將gl_args,gl_kwargs組成一個元組,正確的傳遞方式應(yīng)該是: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)
運行結(jié)果:
(1, 2, 3, 4)
{'name': 'test1', 'age': 12}
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python 網(wǎng)絡(luò)編程起步(Socket發(fā)送消息)
現(xiàn)在開始學習網(wǎng)絡(luò)編程,先從簡單的UDP協(xié)議發(fā)送消息開始。我們需要有接受消息的服務(wù)端程序(Server.py)和發(fā)送消息的客戶端程序(Client)。2008-09-09
Python編譯成.so文件進行加密后調(diào)用的實現(xiàn)
今天小編就為大家分享一篇Python編譯成.so文件進行加密后調(diào)用的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Pycharm中切換pytorch的環(huán)境和配置的教程詳解
這篇文章主要介紹了Pycharm中切換pytorch的環(huán)境和配置,本文給大家介紹的非常詳細,對大家的工作或?qū)W習具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
Pandas數(shù)據(jù)合并的兩種實現(xiàn)方法
本文主要介紹了Pandas數(shù)據(jù)合并的兩種實現(xiàn)方法,DataFrame數(shù)據(jù)合并主要使用merge()方法和concat()方法,具有一定的參考價值,感興趣的可以了解一下2023-11-11

