函式式程式設計中的引數

2022-10-10 12:09:09 字數 2351 閱讀 7420

函式式程式設計中引數使用的學習筆記

def test(x,y,z):

print('引數x=',x)

print('引數y=',y)

print('引數z=',z)

test('a','b','z')

#實參與形參一一對應

'''x= a

y= b

z= z

'''print('---->')

test(y= 'a',x= 'b',z='c' )

#關鍵引數呼叫,跟形參位置無關

'''x= b

y= a

z= c

'''print('*********')

#關鍵字引數不能寫在位置引數前面.如果寫成test(4,z= 'a','b')執行時會報錯

#關鍵字引數不能寫在位置引數前面.

#關鍵字引數不能寫在位置引數前面.

test(4,z= 'a',y='b')

'''x= 4

y= b

z= a

'''test([1,2],2,3)

'''x= [1, 2]

y= 2

z= 3

'''#這裡的所有x、y、z都只是引數,而不是變數

def test2(x,y=0):

print(x,y)

print(y)

test2(1,9)

print('--->')

test2(1)

'''1 9

9--->

1 00

當呼叫函式test2時,把1賦值給了x,把9重新賦值給y

如果不重新賦值給y,那麼y就用test2的預設y=0

預設引數的特點:在呼叫函式時,預設引數是非必須傳遞的引數,

即可以重新傳遞新的引數,也可以使用原有函式的引數

'''def test3(x,z,y=2):

print(x)

print(y)

print(z)

test3(1,3)

'''123

如果是test3是 def test3(x,y=2,z):

同樣test3(1,3)時,系統會報錯,這是因為

關鍵字引數不能寫在位置引數前面,是語法錯誤,

而不是因為1賦值給x,3重新賦值給y,這樣子缺少第三個引數

def test3(x,y=2,z):

print(x)

print(y)

print(z)

test3(1,3,4)

syntaxerror: non-default argument follows default argument

'''def test4(*u):

print(u)

test4(1,2,3,4,5,5,5)

'''(1, 2, 3, 4, 5, 5, 5)

用*開頭,則是把實參變成元組

'''test4(*[1,2,9])

'''(1, 2, 9)

傳列表作為引數也要加乙個 * 號,還是返回乙個tuple

'''def test5(x,*agrs):

print(x)

print(agrs)

test5(1,2,3,4,5,6,7,8,9,)

'''1

(2, 3, 4, 5, 6, 7, 8, 9)

'''def test6(**kvargs):

print(kvargs )

test6(name='jc',age='34')

'''兩個 * 號把n個關鍵字引數轉換成乙個字典

'''#*args:接收n個位置引數,轉換成元組的方式

#**kwars:接收n個關鍵字引數,轉換成字典的方式

def test7(name,age=34,*args ,**kwargs ):

print('name是',name)

print('age是',age)

print(args)

print(kwargs )

test7('jc',34,4,349,job='it',salary=6000)

'''name是 jc

age是 34

(4, 349)

當*args被賦引數時,預設引數age=34要在位置引數上重新賦值,而且不能使用關鍵字引數賦值,

否則系統會先使用位置引數賦值給age,然後在後找到關鍵字引數age=(關鍵字引數『age=』必需放在位置引數後面)時,

會造成age接收到2個值產生錯誤。

'''

函式式程式設計與引數

函式 def定義,有返回值 過程 def定義,沒有返回值 函式式程式設計是 抽象程度很高的程式設計正規化,純粹的函式式程式語言編寫的函式沒有變數。所以,任意函式,只要輸入是確定的,輸出就是確定的,就像數學裡的函式,變數和因變數的關係是明確的。python對函式式程式設計提供部分支援,由於python...

函式式程式設計中的函式 函式式程式設計的多型

函式式程式設計中的函式 函式式程式設計的多型 儲存了計算上下文和計算過程的特殊值 儲存了計算上下文和計算過程的有輸入輸出的可計算結構。儲存了計算上下文和計算過程的可配置結構 柯里化 函式作為一種特殊的值和結構,可以由更高階的函式對其進行組合 變換 柯里化等操作 函式作為輸入和輸出 本質上都是可配置 ...

python 函式式程式設計和引數

return的三種情況,如果不寫,返回none,如果寫乙個就返回寫的那個,如果多個,就放在乙個元組裡返回,還有如果返回是要給函式沒有括號,就返回這個函式。如果有括號,就返回這個函式執行後的結果,然後在返回返回值。def test1 print hello def test2 print hello ...