函式式程式設計中引數使用的學習筆記
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 ...