匿名函式指一類無須定義識別符號的函式或子程式。python用lambda語法定義匿名函式,只需用表示式而無需申明。(省略了用def宣告函式的標準步驟)
計算兩個數的和
匿名函式的應用示例
問題描述: 有乙個整數列表(10個元素), 要求調整元素順序,把所有的奇數放在前面,偶數放在後面。
實現如下:
已知: 函式可以呼叫函式。結論: 乙個函式在內部呼叫自己本身,這個函式就是遞迴函式。
1、 計算階乘 factorial: n! = 1 * 2 * 3 * … * n
具體實現**
def recursive_factorial(num):
"""使用遞迴求num的階乘
"""# 如果num等於0或者1, 返回1;
if num ==1 or num == 0:
return 1
# num的階乘為num*(num-1)!
else:
return num * recursive_factorial(num - 1)
print("2的階乘: ", recursive_factorial(2))
print("0的階乘: ", recursive_factorial(0))
2、斐波那契數列(fibonacci sequence)的實現,f(1)=1,f(2)=1, f(n)=f(n-1)+f(n-2)(n>=3,n∈n*)
具體實現和結果
def f(n):
if n <= 2:
return 1
else:
return f(n - 1) + f(n - 2)
print(f(4)) #輸出菲波那契數列的第4個
print(f(6)) #輸出菲波那契數列的第6個
3、漢諾塔問題
在世界中心貝拿勒斯(在印度北部)的聖廟裡,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的64片金片,這就是所謂的漢諾塔。不論白天黑夜,總有乙個僧侶在按照下面的法則移動這些金片:一次只移動一片,不管在哪根針上,小片必須在大片上面。
具體實現和結果如下:
movecount = 0
def hanoi(n, a='a', b='b', c='c'):
""":param n:盤子個數
:param a:初始塔
:param b:快取塔
:param c:目標塔
:return:移動次數
"""if n == 1:
global movecount
movecount += 1
print(a, "--->", c)
else:
hanoi(n - 1, a, c, b)
hanoi(1, a, b, c)
hanoi(n - 1, b, a, c)
hanoi(3)
print("移動次數:", movecount)
python之遞迴函式 匿名函式
定義 遞迴,就是函式自己呼叫自己 deffunc num int input num if num 2 0 print 是偶數 return else func 匿名函式 2 匿名函式 意義 減少記憶體占用 lambada 定義乙個匿名函式,eg lambad x,b x b 前面是入參eg x,b...
python中的匿名函式與遞迴函式
匿名函式 無需使用def來命名的函式 用到關鍵字lambda 求最大值的匿名函式 max num lambda num1 num2 num1 if num1 num2 else num2 求和sum num lambda num1 num2 num1 num2 多項和 遞迴函式 自己呼叫自己的函式,...
python函式函式巢狀分析步驟與遞迴函式
1 函式巢狀分析步驟 1.name czd 2.def zhangwuji 3.1 name 張無忌 3.2 print name 3.3 def songqingshu 3.4.1 name 宋青書 3.4.2 print name 3.4.3 def zhaomin 3.4.5.1 name 趙...