python函數(shù)參數(shù)(必須參數(shù)、可變參數(shù)、關鍵字參數(shù))
#python中的函數(shù)定義,使用和傳參 ###------------------- 必要參數(shù) ------------------------------------- 必要參數(shù),即函數(shù)調(diào)用時必須要傳的參數(shù), #下面進行舉例說明 def helloWorld(a): print('輸出:hello') if __name__ == '__main__': helloWorld("aaa") ## 必須要有參數(shù) ##------------ 默認參數(shù) ----------------------------------------------------------- 說明: 1.必選參數(shù)在前, 2,有多個默認參數(shù)時,調(diào)用的時候,既可以按順序提供默認參數(shù) 3,也可以不按順序提供部分默認參數(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') 特別重要: ### 定義默認參數(shù)要牢記一點:默認參數(shù)必須指向不變對象! 例如: def add_end(L=[]): L.append('END') return L print (add_end()) print (add_end()) 結(jié)果: ['END'] ['END','END'] 原因說明: Python函數(shù)在定義的時候,默認參數(shù)L的值就被計算出來了,在每次調(diào)用時,L參數(shù)已經(jīng)變前一次調(diào)用所更改了, 所以: 避免在函數(shù)里面去修改函數(shù)的默認參數(shù)值。 ##--------------------- 關鍵字參數(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) ##以關健字方式傳入?yún)?shù)(可以不按順序) ##-------------- 不定長參數(shù)(可變參數(shù)) (這些可變參數(shù)在函數(shù)調(diào)用時自動組裝為一個tuple)----------------------------------------------------------- 顧名思義: 可變參數(shù)就是傳入的參數(shù)個數(shù)是可變的,可以是1個、2個到任意個,還可以是0個。 ###重要說明: (可變參數(shù)的好處是,不用事先準備好LIST或者元組) 這些可變參數(shù)在函數(shù)調(diào)用時自動組裝為一個tuple 定義: def loop(*args): for x in args: print x loop(1,2,3) 結(jié)果是: 1 2 3 ###說明2: 如果已經(jīng)有了一個列表或者元組,怎么傳遞可變參數(shù)呢??? 如下: def loop(*args): for x in args: print x loop(1,2,3) a=[4,5,6] loop(*a) ## 這里要在列表 或元組 前面加* 連傳遞參數(shù)進來。 ###------------------- 這也是不定長參數(shù) ---------------------------------------------------------------- 說明: 這些關鍵字參數(shù)在函數(shù)內(nèi)部自動組裝為一個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)有了一個字典 >>> person('Jack', 24, **extra) ---- **extra表示把extra這個dict的所有key-value用關鍵字參數(shù)傳入到函數(shù)的**kw參數(shù) name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'} ###調(diào)用說明: **extra表示把extra這個dict的所有key-value用關鍵字參數(shù)傳入到函數(shù)的**kw參數(shù),kw將獲得一個dict, 注意kw獲得的dict是extra的一份拷貝,對kw的改動不會影響到函數(shù)外的extra。 ##--------------------------------------------
ps:下面給大家介紹下python中函數(shù)、方法、關鍵字的區(qū)別
一、關鍵字
python中一共含有32個關鍵字:'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' --關鍵字-是Python內(nèi)置的、具有特殊意義的表示符 --使用時關鍵字后面不需要括號
二、函 數(shù)
函數(shù)是組織好的,可重復使用的,用來實現(xiàn)單一,或相關聯(lián)功能的代碼段??梢宰约憾x一個函數(shù)。
--函數(shù)-封裝了獨立功能,可以直接調(diào)用
--函數(shù)名(參數(shù))
以下是簡單的定義規(guī)則:
•函數(shù)代碼塊以 def 關鍵詞開頭,后接函數(shù)標識符名稱和圓括號()。
•任何傳入?yún)?shù)和自變量必須放在圓括號中間。圓括號之間可以用于定義參數(shù)。
•函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明。
•函數(shù)內(nèi)容以冒號起始,并且縮進。
•return [表達式] 結(jié)束函數(shù),選擇性地返回一個值給調(diào)用方。不帶表達式的return相當于返回 None。
語法:
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ù)類似,同樣封裝了獨立的功能
-需要通過對象來調(diào)用表示針對這個對象要做的操作
--對象.方法名(參數(shù))
--在變量名后面輸入.,然后選擇針對這個變量要執(zhí)行的操作,記憶起來閉函數(shù)要簡單的多
總結(jié)
以上所述是小編給大家介紹的python函數(shù)參數(shù)(必須參數(shù)、可變參數(shù)、關鍵字參數(shù)),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關文章
基于Python實現(xiàn)原創(chuàng)程序猿乘風破浪小游戲
最近學習了一丁點Pygame技能,感覺有點上頭,一波操作創(chuàng)作“程序猿乘風破浪”游戲一款,文中的示例代碼講解詳細,希望大家能夠喜歡2023-02-02pyqt5 textEdit、lineEdit操作的示例代碼
這篇文章主要介紹了pyqt5 textEdit、lineEdit操作的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08Python實現(xiàn)周日歷與時間相互轉(zhuǎn)換
周日歷是日常生活中不常用到的歷法系統(tǒng),一般用于政府、商務的會計年度或者學校教學日歷中。本文為大家介紹了如何利用Python語言實現(xiàn)周日歷與時間相互轉(zhuǎn)換,感興趣的可以學習一下2022-07-07Python3 串口接收與發(fā)送16進制數(shù)據(jù)包的實例
今天小編就為大家分享一篇Python3 串口接收與發(fā)送16進制數(shù)據(jù)包的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06python smtplib模塊發(fā)送SSL/TLS安全郵件實例
這篇文章主要介紹了python smtplib模塊發(fā)送SSL/TLS安全郵件實例,本文講解了二種發(fā)送方式,需要的朋友可以參考下2015-04-04pip安裝庫報錯[notice]?A?new?release?of?pip?available:?22.2
這篇文章主要給大家介紹了關于pip安裝庫報錯[notice]?A?new?release?of?pip?available:?22.2?->?22.2.2的相關資料,文中通過圖文將解決的方法介紹的非常詳細,需要的朋友可以參考下2023-03-03