最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
python函數(shù)傳列表 python列表值傳遞

python 函數(shù)參數(shù)類型

python 的函數(shù)參數(shù)類型分為4種:

為城口等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及城口網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè)、城口網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

1.位置參數(shù):調(diào)用函數(shù)時根據(jù)函數(shù)定義的參數(shù)位置來傳遞參數(shù),位置參數(shù)也可以叫做必要參數(shù),函數(shù)調(diào)用時必須要傳的參數(shù)。

當參數(shù)滿足函數(shù)必要參數(shù)傳參的條件,函數(shù)能夠正常執(zhí)行:

add(1,2) #兩個參數(shù)的順序必須一一對應(yīng),且少一個參數(shù)都不可以

當我們運行上面的程序,輸出:

當函數(shù)需要兩個必要參數(shù),但是調(diào)用函數(shù)只給了一個參數(shù)時,程序會拋出異常

add(1)

當我們運行上面的程序,輸出:

當函數(shù)需要兩個必要參數(shù),但是調(diào)用函數(shù)只給了三個參數(shù)時,程序會拋出異常

add(1,2,3)

當我們運行上面的程序,輸出

2.關(guān)鍵字參數(shù):用于函數(shù)調(diào)用,通過“鍵-值”形式加以指定??梢宰尯瘮?shù)更加清晰、容易使用,同時也清除了參數(shù)的順序需求。

add(1,2) # 這種方式傳參,必須按順序傳參:x對應(yīng)1,y對應(yīng):2

add(y=2,x=1) #以關(guān)健字方式傳入?yún)?shù)(可以不按順序)

正確的調(diào)用方式

add(x=1, y=2)

add(y=2, x=1)

add(1, y=2)

以上調(diào)用方式都是允許的,能夠正常執(zhí)行

錯誤的調(diào)用方式

add(x=1, 2)

add(y=2, 1)

以上調(diào)用都會拋出SyntaxError 異常

上面例子可以看出:有位置參數(shù)時,位置參數(shù)必須在關(guān)鍵字參數(shù)的前面,但關(guān)鍵字參數(shù)之間不存在先后順序的

3.默認參數(shù):用于定義函數(shù),為參數(shù)提供默認值,調(diào)用函數(shù)時可傳可不傳該默認參數(shù)的值,所有位置參數(shù)必須出現(xiàn)在默認參數(shù)前,包括函數(shù)定義和調(diào)用,有多個默認參數(shù)時,調(diào)用的時候,既可以按順序提供默認參數(shù),也可以不按順序提供部分默認參數(shù)。當不按順序提供部分默認參數(shù)時,需要把參數(shù)名寫上

默認參數(shù)的函數(shù)定義

上面示例第一個是正確的定義位置參數(shù)的方式,第二個是錯誤的,因為位置參數(shù)在前,默認參數(shù)在后

def add1(x=1,y) 的定義會拋出如下異常

默認參數(shù)的函數(shù)調(diào)用

注意:定義默認參數(shù)默認參數(shù)最好不要定義為可變對象,容易掉坑

不可變對象:該對象所指向的內(nèi)存中的值不能被改變,int,string,float,tuple

可變對象,該對象所指向的內(nèi)存中的值可以被改變,dict,list

這里只要理解一下這個概念就行或者自行百度,后續(xù)會寫相關(guān)的專題文章講解

舉一個簡單示例

4.可變參數(shù)區(qū)別:定義函數(shù)時,有時候我們不確定調(diào)用的時候會多少個參數(shù),j就可以使用可變參數(shù)

可變參數(shù)主要有兩類:

*args: (positional argument) 允許任意數(shù)量的可選位置參數(shù)(參數(shù)),將被分配給一個元組, 參數(shù)名前帶*,args只是約定俗成的變量名,可以替換其他名稱

**kwargs:(keyword argument) 允許任意數(shù)量的可選關(guān)鍵字參數(shù),,將被分配給一個字典,參數(shù)名前帶**,kwargs只是約定俗成的變量名,可以替換其他名稱

*args 的用法

args 是用來傳遞一個非鍵值對的可變數(shù)量的參數(shù)列表給函數(shù)

語法是使用 符號的數(shù)量可變的參數(shù); 按照慣例,通常是使用arg這個單詞,args相當于一個變量名,可以自己定義的

在上面的程序中,我們使用* args作為一個可變長度參數(shù)列表傳遞給add()函數(shù)。 在函數(shù)中,我們有一個循環(huán)實現(xiàn)傳遞的參數(shù)計算和輸出結(jié)果。

還可以直接傳遞列表或者數(shù)組的方式傳遞參數(shù),以數(shù)組或者列表方式傳遞參數(shù)名前面加(*) 號

理解* * kwargs

**kwargs 允許你將不定長度的鍵值對, 作為參數(shù)傳遞給函數(shù),這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動組裝為一個dict

下篇詳細講解 *args, **kwargs 的參數(shù)傳遞和使用敬請關(guān)注

python函數(shù)中傳入list為啥會這樣?,這破問題卡了一整天

代碼及運行結(jié)果如圖:

從你的問題來看是一個新手,建議直接放棄2.x版本學(xué)習(xí)3.x版本。對現(xiàn)在的你來說用到的2與3版本之間的差異可能也就是print(如圖中所示與你代碼的差異),影響很小。

代碼解釋:

你的代碼中用A,B = inputlist,inputlist進行賦值,實際A與B都是指向了同一個內(nèi)存對象,所以對其中任意一個做出修改,即修改了內(nèi)存中的這個對象,造成A與B同時修改。解決方法,引入copy模塊中的deepcopy()函數(shù),保證A與B指向長的一樣但在內(nèi)存中是兩個對象,這樣對其中一個修改時完全不影響到另一個。

在python里,想要把列表傳進函數(shù),在函數(shù)里使列表發(fā)生改變。怎么實現(xiàn)?

l?=?range(5)

def?func(m):

...?????m[3]?=?999

...?????

print?l

[0,?1,?2,?3,?4]

func(l)

print?l

[0,?1,?2,?999,?4]

直接修改列表就可以了


網(wǎng)站標題:python函數(shù)傳列表 python列表值傳遞
當前地址:http://fisionsoft.com.cn/article/hjjcpj.html