<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
一個函數執行後可以返回多個返回值
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.呼叫多個預設引數的函數
在呼叫函數時,如果有多個預設引數,需要指定引數名,這樣直譯器才能夠知道引數的對應關係
有時候可能需要一個函數能夠處理的引數個數是不確定的,這個時候,就可以使用多值引數
引數名前增加一個* ,可以接收元組
引數名前增加兩個*,可以接受字典
*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}
本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45