函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的**段。
函式能提高應用的模組性,和**的重複利用率。
1、函式定義
你可以定義乙個由自己想要功能的函式,以下是簡單的規則:
任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。
函式內容以冒號起始,並且縮排。
return [表示式] 結束函式,選擇性地返回乙個值給呼叫方。不帶表示式的return相當於返回 none。
def 函式名(引數列表):
函式體
2、函式呼叫
# 定義函式
defprintme
(str):
# 列印任何傳入的字串
print
(str
)return
# 呼叫函式
printme(
"我要呼叫使用者自定義函式!"
)printme(
"再次呼叫同一函式"
)
3、函式引數
python 的函式具有非常靈活多樣的引數形態,既可以實現簡單的呼叫,又可以傳入非常複雜的引數。從簡到繁的引數形態如下:
def
functionname
(arg1)
:"函式_文件字串"
function_suite
return
[expression]
arg1
- 位置引數 ,這些引數在呼叫函式 (call function) 時位置要固定。
def
functionname
(arg1, arg2=v)
:"函式_文件字串"
function_suite
return
[expression]
arg2 = v
- 預設引數 = 預設值,呼叫函式時,預設引數的值如果沒有傳入,則被認為是預設值。
預設引數一定要放在位置引數後面,不然程式會報錯。
可變引數就是傳入的引數個數是可變的,可以是 0, 1, 2 到任意個,是不定長的引數。
def
functionname
(arg1, arg2=v,
*args)
:"函式_文件字串"
function_suite
return
[expression]
*args
- 可變引數,可以是從零個到任意個,自動組裝成元組。
加了星號(*)的變數名會存放所有未命名的變數引數。
def
functionname
(arg1, arg2=v,
*args,
**kw)
:"函式_文件字串"
function_suite
return
[expression]
**kw
- 關鍵字引數,可以是從零個到任意個,自動組裝成字典。
def
functionname
(arg1, arg2=v,
*args,
*, nkw,
**kw)
:"函式_文件字串"
function_suite
return
[expression]
*, nkw
- 命名關鍵字引數,使用者想要輸入的關鍵字引數,定義方式是在nkw
前面加個分隔符*
。
如果要限制關鍵字引數的名字,就可以用「命名關鍵字引數」
使用命名關鍵字引數時,要特別注意不能缺少引數名。
在 python 中定義函式,可以用位置引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數,這 5 種引數中的 4 個都可以一起使用,但是注意,引數定義的順序必須是:
位置引數、預設引數、可變引數和關鍵字引數。
位置引數、預設引數、命名關鍵字引數和關鍵字引數。
python 使用 lambda 來建立匿名函式。
所謂匿名,意即不再使用 def 語句這樣標準的形式定義乙個函式。
lambda
[arg1 [
,arg2,..
...argn]
]:expression
# 可寫函式說明
sum=
lambda arg1, arg2: arg1 + arg2
# 呼叫sum函式
print
("相加後的值為 : "
,sum(10
,20))
#30print
("相加後的值為 : "
,sum(20
,20))
#40
Task06 函式與lambda表示式
def myfirstfunction name 函式定義過程中name是形參 因為ta只是乙個形式,表示佔據乙個引數位置 print 傳遞進來的叫做實參,因為ta是具體的引數值!format name myfirstfunction 老馬的程式人生 傳遞進來的老馬的程式人生叫做實參,因為ta是具體...
task 06函式與lambda表示式
def functionname parameters 函式 文件字串 function suite return expression def add a,b print a b add 1,2 3 add 1 2,3 4 5,6 1,2,3,4,5,6 def myfirstfunction n...
Task06 函式與Lambda表示式
練習題 怎麼給函式編寫 檔?函式解釋 引數1 解釋 return 返回 怎麼給函式引數和返回值註解?def str閉包中,怎麼對數字 字串 元組等不可變元素更新。nonlocal分別根據每一行的首元素和尾元素大小對二維列表 a 6,5 3,7 2,8 排序。利用lambda表示式 a 6,5 3,7...