#python—函式表達
##1.函式的展現方式
def 函式名
([引數列表]
): 函式體
return
[表示式]
###a.函式引數
位置引數 (positional argument)
預設引數 (default argument)
可變引數 (variable argument)
關鍵字引數 (keyword argument)
命名關鍵字引數 (name keyword argument)
引數組合
def functionname
(arg1, arg2=v,
*args,
*, nkw,
**kw)
:"函式_文件字串"
function_suite
return
[expression]
arg1:位置引數 ,這些引數在呼叫函式
(call function
) 時位置要固定
arg2=v:預設引數 = 預設值,呼叫函式時,預設引數的值如果沒有傳入,則被認為是預設值
*args:可變引數,可以是從零個到任意個,自動組裝成元組;加了星號(*)的變數名會存放所有未命名的變數引數
*, nkw:命名關鍵字引數,使用者想要輸入的關鍵字引數,定義方式是在nkw 前面加個分隔符 *;
如果要限制關鍵字引數的名字,就可以用「命名關鍵字引數」;使用命名關鍵字引數時,要特別注意不能缺少引數名。
**kw:關鍵字引數,可以是從零個到任意個,自動組裝成字典。
###b.幾點注意事項
b1.可變引數和關鍵字引數的同異總結如下:
i.可變引數允許傳入零個到任意個引數,它們在函式呼叫時自動組裝為乙個元組 (tuple)。
ii.關鍵字引數允許傳入零個到任意個引數,它們在函式內部自動組裝為乙個字典 (dict)。
b2.引數組合規則:
i.5 種引數中的 4 個都可以一起使用
ii.引數定義的順序必須是:
位置引數、預設引數、可變引數和關鍵字引數。
位置引數、預設引數、命名關鍵字引數和關鍵字引數。
iii.*args 是可變引數,args 接收的是乙個 tuple
**kw 是關鍵字引數,kw 接收的是乙個 dict
##3.lambda函式方式
lambda 引數:expression
add = lambda x, y : x + y
print
(add(2
,3))
#5
odd = lambda x: x %2==
1templist =
filter
(odd,[1
,2,3
,4,5
,6,7
,8,9
])print
(list
(templist)
) # [1,
3,5,
7,9]
map(function, *iterables) 根據提供的函式對指定序列做對映。
m2 =
map(lambda x, y: x + y,[1
,3,5
,7,9
],[2
,4,6
,8,10
])print
(list
(m2)
) # [3,
7,11,
15,19]
b.自定義內建其他函式的高階函式
(fun, some_list)
:return
fun(some_list)
lst =[1
,2,3
,4,5
((sum, lst)
)# 15
((len, lst)
)# 5
((lambda x:
sum(x)
/len
(x), lst)
)# 3.0
MATLAB學習 函式的編寫
函式是matlab程式設計的主流方法。指令碼檔案適合小規模計算,且希望立馬看到結果。一般用於測試某個函式的使用 1.matlab函式程式設計語法格式 function argout1,argout2,fun argin1,argin2,函式功能說明 end函式進行呼叫時,如果不給輸出引數的話,函式返...
python編寫softmax函式 交叉熵函式例項
python編寫softmax函式 交叉熵函式例項 python 如下 import numpy as nppython編寫交叉熵公式 import numpy as npdef cross entropy y,p y np.float y p np.float return np.sum y np...
Python 函式(方法)
一 函式的定義 def python 的函式可以說比較隨意了 1.引數沒有型別,可以傳遞任何的型別給函式,由函式內容定義函式介面。如果傳遞的引數型別不是函式想要的,那麼函式可以丟擲異常。2.函式沒有返回值型別,return可以返回任意型別。二 函式的預設值 1.給乙個或多個引數設定預設值,這樣設定的...