python函數(shù)參數(shù)講解 Python 函數(shù)參數(shù)

「python」 三個方面講解函數(shù)的缺省參數(shù)

所謂缺省參數(shù),在定義函數(shù)時,可以給某個參數(shù)指定一個默認值,具有默認值的參數(shù)就叫做缺省參數(shù)。調(diào)用函數(shù)時,如果沒有傳入缺省參數(shù)的值,則在函數(shù)內(nèi)部使用定義函數(shù)時指定的參數(shù)默認值。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比寧夏網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式寧夏網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋寧夏地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。

缺省參數(shù)的作用:

函數(shù)的缺省參數(shù),將常見的值設置為參數(shù)的缺省值,從而簡化函數(shù)的調(diào)用。

例如:對列表排序的方法

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

在參數(shù)后使用賦值語句,可以指定參數(shù)的缺省值。

不設置缺省參數(shù):

執(zhí)行結(jié)果:張三 是 男生

# 假設班上的男生比女生多,我們不傳遞True這個參數(shù),讓性別默認是男生

設置缺省參數(shù):

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

提示:

1. 缺省參數(shù),需要使用最常見的值作為默認值。

2. 如果一個參數(shù)的值不能確定,則不應該設置默認值,具體的數(shù)值在調(diào)用函數(shù)時,由外界傳遞。

一句話講在定義函數(shù)時怎樣指定函數(shù)的缺省參數(shù)的默認值,在形參后面跟上一個等號,等號后面跟上參數(shù)的默認值就可以了??梢钥匆陨习咐?。

必須保證帶有默認值的缺省參數(shù)在參數(shù)列表末尾。

所以,以下定義是錯的:

PyCharm在錯誤的參數(shù)下面會有一個波浪線提示,告訴你要么給它挪到缺省參數(shù)前面,要么它也變成帶有默認值的缺省參數(shù)。

在調(diào)用函數(shù)時,如果有多個缺省參數(shù),需要指定參數(shù)名,這樣解釋器才能能夠知道參數(shù)的對應關系。

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

Python基礎實戰(zhàn)之函數(shù)的參數(shù)講解(三)

參數(shù)可以是任意類型。

比如可以是列表。

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

library=['python精通','MySQL','數(shù)據(jù)分析','人工智能']

#形參

def add_book(bookname):

library.append(bookname)

print('圖書添加成功!')

pass

def show_book(books):

for book in books:

print(book)

pass

pass

#調(diào)用函數(shù)

add_book('新概念英語')

show_book(library)

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

#輸出列表中所有大于50的數(shù)

list1=[23,45,77,88,58,10]

def get_list(list_1):

new_list=[ ]

for e in list_1:

if e=50:

new_list.append(e)

pass

pass

print(new_list)

pass

#調(diào)用函數(shù)

get_list(list1) #[77,88,58]

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

#刪除列表中小于50的數(shù)

def remove_from_list(list_1):

n=0

while nlen(list_1): p="" /len(list_1):

if list_1[n]50:

list_1.remove(list_1[n])

pass

else:

n+=1

pass

pass

print(list_1)

pass

#調(diào)用函數(shù)

remove_from_list(list1) #[77,88,58]

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

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

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

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

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

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

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

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

輸出:

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

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

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

來看下面的例子:

python3.8運行:

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

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

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

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

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

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

結(jié)果:

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

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

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

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

也可以在可變參數(shù)后面命名關鍵字參數(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ù)、關鍵字參數(shù)、強制關鍵字參數(shù),注意他們不是完全獨立的,比如必選參數(shù)、可選參數(shù)也可以是關鍵字參數(shù),位置參數(shù)可以是必選參數(shù)或者可選參數(shù)。

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

參考文檔:

--THE END--

文章題目:python函數(shù)參數(shù)講解 Python 函數(shù)參數(shù)
標題URL:http://muchs.cn/article6/hgehog.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站制作軟件開發(fā)、域名注冊微信小程序、網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營