python學習 函式編寫方法

2021-10-08 18:55:28 字數 2179 閱讀 8461

#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

]print

((sum, lst)

)# 15

print

((len, lst)

)# 5

print

((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.給乙個或多個引數設定預設值,這樣設定的...