python函數(shù)參數(shù)(必須參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù))
#python中的函數(shù)定義,使用和傳參
###------------------- 必要參數(shù) -------------------------------------
必要參數(shù),即函數(shù)調(diào)用時(shí)必須要傳的參數(shù),
#下面進(jìn)行舉例說明
def helloWorld(a):
print('輸出:hello')
if __name__ == '__main__':
helloWorld("aaa") ## 必須要有參數(shù)
##------------ 默認(rèn)參數(shù) -----------------------------------------------------------
說明:
1.必選參數(shù)在前,
2,有多個(gè)默認(rèn)參數(shù)時(shí),調(diào)用的時(shí)候,既可以按順序提供默認(rèn)參數(shù)
3,也可以不按順序提供部分默認(rèn)參數(shù)。當(dāng)不按順序提供部分默認(rèn)參數(shù)時(shí),需要把參數(shù)名寫上
例如:
def enroll(name, gender, age=6, city='Beijing'):
print('name:', name)
print('gender:', gender)
print('age:', age)
print('city:', city)
enroll('Bob', 'M', 7)
enroll('Adam', 'M', city='Tianjin')
特別重要:
### 定義默認(rèn)參數(shù)要牢記一點(diǎn):默認(rèn)參數(shù)必須指向不變對(duì)象!
例如:
def add_end(L=[]):
L.append('END')
return L
print (add_end())
print (add_end())
結(jié)果:
['END']
['END','END']
原因說明:
Python函數(shù)在定義的時(shí)候,默認(rèn)參數(shù)L的值就被計(jì)算出來了,在每次調(diào)用時(shí),L參數(shù)已經(jīng)變前一次調(diào)用所更改了,
所以:
避免在函數(shù)里面去修改函數(shù)的默認(rèn)參數(shù)值。
##--------------------- 關(guān)鍵字參數(shù) --------------------------------------------
def about(name,course,site):
print (name,course,site)
about('jim','100','www.baidu.com') ## 必須按順序傳參
about(site='www.baidu.com',name='green',course=100) ##以關(guān)健字方式傳入?yún)?shù)(可以不按順序)
##-------------- 不定長(zhǎng)參數(shù)(可變參數(shù)) (這些可變參數(shù)在函數(shù)調(diào)用時(shí)自動(dòng)組裝為一個(gè)tuple)-----------------------------------------------------------
顧名思義:
可變參數(shù)就是傳入的參數(shù)個(gè)數(shù)是可變的,可以是1個(gè)、2個(gè)到任意個(gè),還可以是0個(gè)。
###重要說明:
(可變參數(shù)的好處是,不用事先準(zhǔn)備好LIST或者元組)
這些可變參數(shù)在函數(shù)調(diào)用時(shí)自動(dòng)組裝為一個(gè)tuple
定義:
def loop(*args):
for x in args:
print x
loop(1,2,3)
結(jié)果是:
1
2
3
###說明2:
如果已經(jīng)有了一個(gè)列表或者元組,怎么傳遞可變參數(shù)呢??? 如下:
def loop(*args):
for x in args:
print x
loop(1,2,3)
a=[4,5,6]
loop(*a) ## 這里要在列表 或元組 前面加* 連傳遞參數(shù)進(jìn)來。
###------------------- 這也是不定長(zhǎng)參數(shù) ----------------------------------------------------------------
說明:
這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動(dòng)組裝為一個(gè)dict
函數(shù)定義:
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
調(diào)用1:
>>> person('Michael', 30)
name: Michael age: 30 other: {}
調(diào)用2:
>>> person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
調(diào)用3:
>>> extra = {'city': 'Beijing', 'job': 'Engineer'} ---事先已經(jīng)有了一個(gè)字典
>>> person('Jack', 24, **extra) ---- **extra表示把extra這個(gè)dict的所有key-value用關(guān)鍵字參數(shù)傳入到函數(shù)的**kw參數(shù)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
###調(diào)用說明:
**extra表示把extra這個(gè)dict的所有key-value用關(guān)鍵字參數(shù)傳入到函數(shù)的**kw參數(shù),kw將獲得一個(gè)dict,
注意kw獲得的dict是extra的一份拷貝,對(duì)kw的改動(dòng)不會(huì)影響到函數(shù)外的extra。
##--------------------------------------------
ps:下面給大家介紹下python中函數(shù)、方法、關(guān)鍵字的區(qū)別
一、關(guān)鍵字
python中一共含有32個(gè)關(guān)鍵字:'false', 'none', 'true', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield' --關(guān)鍵字-是Python內(nèi)置的、具有特殊意義的表示符 --使用時(shí)關(guān)鍵字后面不需要括號(hào)
二、函 數(shù)
函數(shù)是組織好的,可重復(fù)使用的,用來實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段??梢宰约憾x一個(gè)函數(shù)。
--函數(shù)-封裝了獨(dú)立功能,可以直接調(diào)用
--函數(shù)名(參數(shù))
以下是簡(jiǎn)單的定義規(guī)則:
•函數(shù)代碼塊以 def 關(guān)鍵詞開頭,后接函數(shù)標(biāo)識(shí)符名稱和圓括號(hào)()。
•任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間。圓括號(hào)之間可以用于定義參數(shù)。
•函數(shù)的第一行語(yǔ)句可以選擇性地使用文檔字符串—用于存放函數(shù)說明。
•函數(shù)內(nèi)容以冒號(hào)起始,并且縮進(jìn)。
•return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。
語(yǔ)法:
def functionname( parameters ): "函數(shù)_文檔字符串" function_suite return [expression]
案例:
#自定義函數(shù)
def function_name (str):
"打印傳入的字符串"
print(str)
return(0);
#調(diào)用自定義函數(shù)
function_name("自定義函數(shù)")
function_name("調(diào)用自定義函數(shù)")
二、方 法
方法-和函數(shù)類似,同樣封裝了獨(dú)立的功能
-需要通過對(duì)象來調(diào)用表示針對(duì)這個(gè)對(duì)象要做的操作
--對(duì)象.方法名(參數(shù))
--在變量名后面輸入.,然后選擇針對(duì)這個(gè)變量要執(zhí)行的操作,記憶起來閉函數(shù)要簡(jiǎn)單的多
總結(jié)
以上所述是小編給大家介紹的python函數(shù)參數(shù)(必須參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Python實(shí)現(xiàn)Gif圖片分解的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言實(shí)現(xiàn)Gif圖片分解功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手嘗試一下2022-08-08
python進(jìn)階教程之函數(shù)參數(shù)的多種傳遞方法
這篇文章主要介紹了python進(jìn)階教程之函數(shù)參數(shù)的多種傳遞方法,包括關(guān)鍵字傳遞、默認(rèn)值傳遞、包裹位置傳遞、包裹關(guān)鍵字混合傳遞等,需要的朋友可以參考下2014-08-08
Python獲取任意xml節(jié)點(diǎn)值的方法
這篇文章主要介紹了Python獲取任意xml節(jié)點(diǎn)值的方法,涉及Python操作XML節(jié)點(diǎn)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05
使用python腳本自動(dòng)創(chuàng)建pip.ini配置文件代碼實(shí)例
這篇文章主要介紹了使用python腳本自動(dòng)創(chuàng)建pip.ini配置文件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
讓文件路徑提取變得更簡(jiǎn)單的Python Path庫(kù)
這里我們介紹 Python3 自帶的庫(kù) Path,可以讓我們使用更少的代碼但是與之而來的是更高的效率,文中有非常詳細(xì)的介紹及代碼示例 ,需要的朋友可以參考下2021-05-05
Python操作Excel文件的11種方法(全網(wǎng)最全)
在日常工作或開發(fā)過程中,Excel文件作為一種常用的數(shù)據(jù)存儲(chǔ)格式,其高效便捷的數(shù)據(jù)處理能力被廣泛應(yīng)用于數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)分析等領(lǐng)域,Python作為一種強(qiáng)大的編程語(yǔ)言,提供了豐富的庫(kù)支持來實(shí)現(xiàn)對(duì)Excel文件的操作,本篇將詳細(xì)介紹如何使用Python來操作Excel文件2025-03-03
Python代碼實(shí)現(xiàn)一個(gè)AI多站點(diǎn)搜索神器
在人工智能快速發(fā)展的今天,我們經(jīng)常需要在多個(gè)AI平臺(tái)上嘗試同一個(gè)提示詞,每次復(fù)制粘貼真的很麻煩,所以本文就來使用Python打造一個(gè)AI多站點(diǎn)搜索神器吧2025-03-03

