真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python編寫帶參函數(shù) python函數(shù)的傳參要求

Python函數(shù)的參數(shù)類型

Python函數(shù)的參數(shù)類型主要包括必選參數(shù)、可選參數(shù)、可變參數(shù)、位置參數(shù)和關(guān)鍵字參數(shù),本文介紹一下他們的定義以及可變數(shù)據(jù)類型參數(shù)傳遞需要注意的地方。

成都創(chuàng)新互聯(lián)公司是專業(yè)的日照網(wǎng)站建設(shè)公司,日照接單;提供成都做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行日照網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

必選參數(shù)(Required arguments)是必須輸入的參數(shù),比如下面的代碼,必須輸入2個參數(shù),否則就會報錯:

其實上面例子中的參數(shù) num1和num2也屬于關(guān)鍵字參數(shù),比如可以通過如下方式調(diào)用:

執(zhí)行結(jié)果:

可選參數(shù)(Optional arguments)可以不用傳入函數(shù),有一個默認值,如果沒有傳入會使用默認值,不會報錯。

位置參數(shù)(positional arguments)根據(jù)其在函數(shù)定義中的位置調(diào)用,下面是pow()函數(shù)的幫助信息:

x,y,z三個參數(shù)的的順序是固定的,并且不能使用關(guān)鍵字:

輸出:

在上面的pow()函數(shù)幫助信息中可以看到位置參數(shù)后面加了一個反斜杠 / ,這是python內(nèi)置函數(shù)的語法定義,Python開發(fā)人員不能在python3.8版本之前的代碼中使用此語法。但python3.0到3.7版本可以使用如下方式定義位置參數(shù):

星號前面的參數(shù)為位置參數(shù)或者關(guān)鍵字參數(shù),星號后面是強制關(guān)鍵字參數(shù),具體介紹見強制關(guān)鍵字參數(shù)。

python3.8版本引入了強制位置參數(shù)(Positional-Only Parameters),也就是我們可以使用反斜杠 / 語法來定義位置參數(shù)了,可以寫成如下形式:

來看下面的例子:

python3.8運行:

不能使用關(guān)鍵字參數(shù)形式賦值了。

可變參數(shù) (varargs argument) 就是傳入的參數(shù)個數(shù)是可變的,可以是0-n個,使用星號( * )將輸入?yún)?shù)自動組裝為一個元組(tuple):

執(zhí)行結(jié)果:

關(guān)鍵字參數(shù)(keyword argument)允許將任意個含參數(shù)名的參數(shù)導入到python函數(shù)中,使用雙星號( ** ),在函數(shù)內(nèi)部自動組裝為一個字典。

執(zhí)行結(jié)果:

上面介紹的參數(shù)可以混合使用:

結(jié)果:

注意:由于傳入的參數(shù)個數(shù)不定,所以當與普通參數(shù)一同使用時,必須把帶星號的參數(shù)放在最后。

強制關(guān)鍵字參數(shù)(Keyword-Only Arguments)是python3引入的特性,可參考:。 使用一個星號隔開:

在位置參數(shù)一節(jié)介紹過星號前面的參數(shù)可以是位置參數(shù)和關(guān)鍵字參數(shù)。星號后面的參數(shù)都是強制關(guān)鍵字參數(shù),必須以指定參數(shù)名的方式傳參,如果強制關(guān)鍵字參數(shù)沒有設(shè)置默認參數(shù),調(diào)用函數(shù)時必須傳參。

執(zhí)行結(jié)果:

也可以在可變參數(shù)后面命名關(guān)鍵字參數(shù),這樣就不需要星號分隔符了:

執(zhí)行結(jié)果:

在Python對象及內(nèi)存管理機制中介紹了python中的參數(shù)傳遞屬于對象的 引用傳遞 (pass by object reference),在編寫函數(shù)的時候需要特別注意。

先來看個例子:

執(zhí)行結(jié)果:

l1 和 l2指向相同的地址,由于列表可變,l1改變時,l2也跟著變了。

接著看下面的例子:

結(jié)果:

l1沒有變化!為什么不是[1, 2, 3, 4]呢?

l = l + [4]表示創(chuàng)建一個“末尾加入元素 4“的新列表,并讓 l 指向這個新的對象,l1沒有進行任何操作,因此 l1 的值不變。如果要改變l1的值,需要加一個返回值:

結(jié)果:

下面的代碼執(zhí)行結(jié)果又是什么呢?

執(zhí)行結(jié)果:

和第一個例子一樣,l1 和 l2指向相同的地址,所以會一起改變。這個問題怎么解決呢?

可以使用下面的方式:

也可以使用淺拷貝或者深度拷貝,具體使用方法可參考Python對象及內(nèi)存管理機制。這個問題在Python編程時需要特別注意。

本文主要介紹了python函數(shù)的幾種參數(shù)類型:必選參數(shù)、可選參數(shù)、可變參數(shù)、位置參數(shù)、強制位置參數(shù)、關(guān)鍵字參數(shù)、強制關(guān)鍵字參數(shù),注意他們不是完全獨立的,比如必選參數(shù)、可選參數(shù)也可以是關(guān)鍵字參數(shù),位置參數(shù)可以是必選參數(shù)或者可選參數(shù)。

另外,python中的參數(shù)傳遞屬于對象的 引用傳遞 ,在對可變數(shù)據(jù)類型進行參數(shù)傳遞時需要特別注意,如有必要,使用python的拷貝方法。

參考文檔:

--THE END--

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

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

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

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

add(1,2) #兩個參數(shù)的順序必須一一對應,且少一個參數(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對應1,y對應: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ù)Prme(n),接收正整數(shù)n作為參數(shù),判斷該正整數(shù)是否為素數(shù),如?

下面是一個 Python 程序,可以實現(xiàn)函數(shù) Prme(n),接收正整數(shù) n 作為參數(shù),判斷該正整數(shù)是否為素數(shù)。

在這個程序中,我們定義了函數(shù) Prme(n),接收一個正整數(shù) n 作為參數(shù)。首先,我們判斷 n 是否小于 2,如果是,則返回 False。然后,我們判斷 n 是否等于 2,如果是,則返回 True。最后,我們使用一個 for 循環(huán)從 2 到 n-1 枚舉所有的數(shù),如果 n 能夠被 i 整除,則返回 False。否則,返回 True。

Python已經(jīng)封裝成的三個函數(shù)怎么變成帶四個參數(shù)的一個函數(shù)?

再寫一個函數(shù), 通過其中一個參數(shù)來判斷(或者其他的判別方式, 比如參數(shù)的數(shù)量, 類型等)來判斷要執(zhí)行的方法, 調(diào)用就可以了

比如, 已經(jīng)有的三個函數(shù)為:

def func_A(v1, v2, v3)

def func_B(v1,v2,v3)

def func_C(v1,v2,v3)

再封裝變成:

def func(m, v1, v2, v3):

if m==1: func_A(v1,v2,v3)

elif m==2:func_B(v1,v2,v3)

else: func_C(v1,v2,v3)

如果ABC三個函數(shù)的參數(shù)數(shù)量各不相同, 就可以使用參數(shù)數(shù)量來判斷:

def func_A(v1)

def func_B(v1,v2)

def func_C(v1,v2,v3)

----------------------------

def func(*args):

cnt = len(args)

if cnt==1: func_A(*args)

elif cnt ==2: func_B(*args)

elif cnt == 3: func_C(*args)

求python程序 4個自定義的帶參數(shù)的函數(shù),四個帶參數(shù)的函數(shù)分別實現(xiàn)加減乘除運算并返回計算值

def add(a,b):#加法運算return a+bdef sub(a,b):#減法運算return a-bdef mul(a,b):#乘法運算return a*bdef div(a,b=1):#除法運算return a/b

python中函數(shù)的參數(shù)怎么寫

*代表的是參數(shù)個數(shù)不確定的情況;

帶一個星號(*)參數(shù)的函數(shù)傳人的參數(shù)存儲為一個元組(tuple);

而帶兩個星號(*)參數(shù)的函數(shù)傳人的參數(shù)則存儲為一個字典(dict);

由于傳入的參數(shù)個數(shù)不定,所以當與普通參數(shù)一同使用時,必須把帶星號的參數(shù)放在最后。


當前名稱:python編寫帶參函數(shù) python函數(shù)的傳參要求
URL標題:http://weahome.cn/article/hpjojp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部