五 函式與lambda表示式

2021-10-08 18:55:28 字數 1694 閱讀 1819

1. 怎麼給函式編寫⽂檔?

為了其他⼈能夠理解程式,需要給函式編寫⽂檔,可以通過以下兩種⽅式 :

1)新增注釋(以 # 開頭的內容):

2)新增獨⽴的文件字串

在 def 語句後(函式的第一行)新增⼀段說明性的字元,稱為⽂檔字串(docstring),這將作為函式的⼀部分被儲存。

下⾯的**演示了如何給函式新增⽂檔字串:

def

test

(a,b)

:'''⽤來完成對2個數求和

引數:a:第⼀個加數

b:第⼆個加數

返回值:

這個函式沒有返回值'''

print

(a+b)

訪問說明⽂檔和⽂檔字串可以通過以下形式:

print

(test.__doc__)

#第一種方式

test? #第二種方式

help

(test)

#第三種方式

2. 怎麼給函式引數和返回值註解?

def

accumlate

(x:int

, y:

int)

:return x*y

def

accumlate

(x:int

, y:

int)

->

int:

return x*y

這些註解都會以字典的形式存在函式的 .annotations屬性中。

accumlate.__annotations__

print

(accumlate.__annotations__)

輸出字典中的value存的是資料的type,即型別。

3. 閉包中,怎麼對數字、字串、元組等不可變元素更新?

如果要修改閉包作用域中的變數則需要 nonlocal 關鍵字

4. 分別根據每一行的首元素和尾元素大小對二維列表 a = [[6, 5], [3, 7], [2, 8]] 排序。(利用lambda表示式)

a =[[

6,5]

,[3,

7],[

2,8]

]a.sort( key=

lambda a:a[0]

)print

(a)a.sort( key=

lambda a:a[1]

)print

(a)

[[2, 8], [3, 7], [6, 5]]

[[6, 5], [3, 7], [2, 8]]

5. 利用python解決漢諾塔問題

def

f(a)

: new=

list

(reversed

(a))

return new

a=list

(range(64

))c=f(f(a)

)print

(c)

函式與lambda表示式

lambda表示式是python中一類特殊的定義函式的形式,使用它可以定義乙個匿名函式。與其它語言不同,python的lambda表示式的函式體只能有單獨的一條語句,也就是返回值表示式語句。其語法如下 lambda 形參列表 函式返回值表示式語句 常規函式 def comp x return x a...

函式與Lambda表示式

def myfirstfunction name 函式定義過程中name是形參 因為ta只是乙個形式,表示佔據乙個引數位置 print 傳遞進來的叫做實參,因為ta是具體的引數值!format name myfirstfunction 老馬的程式人生 傳遞進來的老馬的程式人生叫做實參,因為ta是具體...

函式與Lambda表示式

學習人員 賈其豪 函式定義預設值引數 函式定義時,給形參設定預設值,只有與預設值不符的時候才需要傳遞實參 deffun a,b 10 b稱為預設值引數 print a,b 函式的呼叫 fun 100 fun 20,30 個數可變的位置引數 定義函式時,可能無法事先確定傳遞的位置實參的個數時,使用可變...