name = "小猿圈"
defchange():
name = "
小猿圈,自學程式設計
"def
change2():
#global name 如果宣告了這句,下面的name改的是最外層的全域性變層
name = "
小猿圈,自學程式設計不要錢"#
這句注釋掉的話,下面name列印的是哪個值?
print("
第3層列印
", name)
change2()
#呼叫內層函式
print("
第2層列印
", name)
change()
print("
最外層列印
", name)
輸出:
第3層列印 小猿圈,自學程式設計不要錢
第2層列印 小猿圈,自學程式設計
最外層列印 小猿圈
1 通過上面的例子,我們理解了,每個函式裡的變數是互相獨立的,變數的查詢順序也是從當前層依次往上層找。
2 匿名函式
defcal(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...