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
(name)
:"函式定義過程中name是形參"
# 因為ta只是乙個形式,表示佔據乙個引數位置
print
('傳遞進來的叫做實參,因為ta是具體的引數值!'
.format
(name)
)myfirstfunction(
'老馬的程式人生'
)# 傳遞進來的老馬的程式人生叫做實參,因為ta是具體的引數值!
def
functionname
(arg1)
:"函式_文件字串"
function_suite
return
[expression]
def
functionname
(arg1, arg2=v)
:"函式_文件字串"
function_suite
return
[expression]
def
functionname
(arg1, arg2=v,
*args)
:"函式_文件字串"
function_suite
return
[expression]
*args - 可變引數,可以是從零個到任意個,自動組裝成元組。
加了星號(*)的變數名會存放所有未命名的變數引數。
def
functionname
(arg1, arg2=v,
*args,
**kw)
:"函式_文件字串"
function_suite
return
[expression]
**kw - 關鍵字引數,可以是從零個到任意個,自動組裝成字典。
「可變引數」和「關鍵字引數」的同異總結如下:
可變引數允許傳入零個到任意個引數,它們在函式呼叫時自動組裝為乙個元組 (tuple)。
關鍵字引數允許傳入零個到任意個引數,它們在函式內部自動組裝為乙個字典 (dict)。
def
functionname
(arg1, arg2=v,
*args,
*, nkw,
**kw)
:"函式_文件字串"
function_suite
return
[expression]
1.*,nkw - 命名關鍵字引數,使用者想要輸入的關鍵字引數,定義方式是在nkw 前面加個分隔符 *。
2. 如果要限制關鍵字引數的名字,就可以用「命名關鍵字引數」
3. 使用命名關鍵字引數時,要特別注意不能缺少引數名。
引數定義的順序必須是:
位置引數、預設引數、可變引數和關鍵字引數。
位置引數、預設引數、命名關鍵字引數和關鍵字引數。
def
add(a, b)
:return a + b
print
(add(1,
2))# 3 print(add([1, 2, 3], [4, 5, 6])) # [1, 2, 3, 4, 5, 6]
區域性變數和全域性變數
當內部作用域想修改外部作用域的變數時,就要用到 global 和 nonlocal 關鍵字了。
內嵌函式
def
outer()
:print
('outer函式在這被呼叫'
)def
inner()
:print
('inner函式在這被呼叫'
) inner(
)# 該函式只能在outer函式內部被呼叫
outer(
)# outer函式在這被呼叫 # inner函式在這被呼叫
閉包
是函式式程式設計的乙個重要的語法結構,是一種特殊的內嵌函式。
如果在乙個內部函式裡對外層非全域性作用域的變數進行引用,那麼內部函式就被認為是閉包。
通過閉包可以訪問外層非全域性作用域的變數,這個作用域稱為 閉包作用域。
遞迴如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式
lambda argument_list: expression
expression 中沒有 return 語句,因為 lambda 不需要它來返回,表示式本身結果就是返回值。
匿名函式擁有自己的命名空間,且不能訪問自己引數列表之外或全域性命名空間裡的引數。
匿名函式 常常應用於函式式程式設計的高階函式 (high-order function)中,主要有兩種形式:
引數是函式 (filter, map)
返回值是函式 (closure)
Task06 函式與lambda表示式
def myfirstfunction name 函式定義過程中name是形參 因為ta只是乙個形式,表示佔據乙個引數位置 print 傳遞進來的叫做實參,因為ta是具體的引數值!format name myfirstfunction 老馬的程式人生 傳遞進來的老馬的程式人生叫做實參,因為ta是具體...
Task06 函式與Lambda表示式
練習題 怎麼給函式編寫 檔?函式解釋 引數1 解釋 return 返回 怎麼給函式引數和返回值註解?def str閉包中,怎麼對數字 字串 元組等不可變元素更新。nonlocal分別根據每一行的首元素和尾元素大小對二維列表 a 6,5 3,7 2,8 排序。利用lambda表示式 a 6,5 3,7...
Task06 函式與Lambda表示式 2天
函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。1 函式定義 你可以定義乙個由自己想要功能的函式,以下是簡單的規則 任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。函式內容以冒號起始,並且縮排。return 表示式 結束函...