第二模組 3 7 巢狀 匿名 高階函式

2022-09-02 11:54:07 字數 1110 閱讀 3815

name = "

小猿圈"

defchange():

name = "

小猿圈,自學程式設計

"def

change2():

#global name 如果宣告了這句,下面的name改的是最外層的全域性變層

name = "

小猿圈,自學程式設計不要錢"#

這句注釋掉的話,下面name列印的是哪個值?

print("

第3層列印

", name)

change2()

#呼叫內層函式

print("

第2層列印

", name)

change()

print("

最外層列印

", name)

輸出:

第3層列印 小猿圈,自學程式設計不要錢

第2層列印 小猿圈,自學程式設計

最外層列印 小猿圈

1 通過上面的例子,我們理解了,每個函式裡的變數是互相獨立的,變數的查詢順序也是從當前層依次往上層找。

2 匿名函式

def

cal(x,y):

return x**y

print(cal(2,5))

#換成匿名函式

c = lambda x,y:x**y

print(c(2,8))

res = map(lambda x:x**2, [1,2,3,4,8])

for i in

res:

print(i)

3 高階函式

def get_abs(n):

return int(str(n).strip("-") ) #取絕對值

#print(get_abs(-9))

def add(x,y,f):

return f(x)+f(y)

print(add(5,-10,get_abs))

只需滿足以下任意乙個條件,即是高階函式

巢狀函式 匿名函式與高階函式

顧名思義,巢狀函式就是在外層函式裡面再增加一層內部函式,在函式執行過程中,只有在外層函式內才可以呼叫內部函式,反之在外層函式之外則無法呼叫。name 小猿圈 def change name 小猿圈,自學程式設計 def change2 name 小猿圈,自學程式設計不要錢 print 第三層列印 n...

第二節 模組與函式 上

模組是erlang的基本 單元.模組儲存在擴充套件名為.erl的檔案裡,而且必須先編譯才能執行模組裡面的 編譯後的模組以.beam作為副檔名.我們建立乙個geometry.erl的檔案 1 module geometry 2 export area 1 34 area width height 5 ...

計算器 利用re模組 利用函式封裝 第二版

1 import re2 remove parentheses re.compile 34def remove parentheses obj,s 找到內層的括號並且返回單個括號 5while obj.search s 6 ret obj.search s group 7if in ret or i...