什麼是遞迴函式,遞迴函式就是在在自身內部呼叫或者在別的函式內部呼叫自己實現迴圈就叫遞迴函式,遞迴函式有回溯和遞推的功能。
defindex():
print('
form index')
index()
index()
在遞迴函式中一定要有結束條件,要不然會進入死迴圈,最後達到最大遞迴深度,在python中,最大遞迴函式是1000。
什麼是結束條件,就是在執行此函式的過程中,加入乙個固定值,在迴圈多少次之後就會結束。例如:
defage(n):
if n == 1:
return 18
return age(n - 1) + 2
print(age(2))
l = [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, ]]]]]]]]]]defname(n):
for i in
n:
if type(i) is
int:
(i)
else
: name(i)
name(l)
用更加簡便的方法來寫出**。
a = 16b = 18print(a if a > b else b)
用二分法來判斷乙個數是否在其中
l = [1, 2, 3, 4, 5, 66, 77, 55, 44, 33]l.sort()
#取出列表中間的數,進行判斷
defsize(n, m):
middle = len(m) // 2
if len(m) == 0:;
return
if n >m[middle]:
m_light =m[middle:]
size(n, m_light)
(m_light)
elif n m_lift =m[:middle]
size(n, m_lift)
(m_lift)
else
:
print('對了'
)size(66, l)
能快速在乙個列表中修改值
l = ['bxf', '
cx', 'zt'
]print([i + '
dsb'
if i != 'zt'
else i for i in l ])
能快速將兩個列表拼接成乙個字典
l = ['name
', '
age', '
hobby']
n = ['
bxf', 18, '
python']
print()
匿名函式一般是結合內建函式中使用的,使用方法:lambda+函式變數:返回值
l = [1, 2, 3, 4]print((lambda n: n + 1)(2))
print(list(map(lambda x: x + 1,l)))
匿名函式遞迴
lambda是匿名函式,因為沒有名字,也沒有關鍵字引用自身,因此遞迴的編碼就成了問題。一 最簡單有效的方案是 func f null 變數須先賦值才能使用 f n n 0?1 n f n 1 f 11 39916800 有人擔心f會被惡意修改,因為就是乙個委託變數,而且認為f是委託,而不是匿名函式自...
匿名函式遞迴
lambda是匿名函式,因為沒有名字,也沒有關鍵字引用自身,因此遞迴的編碼就成了問題。一 最簡單有效的方案是 func f null 變數須先賦值才能使用 f n n 0?1 n f n 1 f 11 39916800 有人擔心f會被惡意修改,因為就是乙個委託變數,而且認為f是委託,而不是匿名函式自...
遞迴,匿名函式
目錄匿名函式 函式的巢狀呼叫 函式巢狀函式。函式的遞迴呼叫 它是一種特殊的巢狀呼叫,但是它在呼叫乙個函式過程中,有直接間接呼叫了自身。def foo print from foo foo foo 進入死迴圈def bar print from bar foo def foo print from f...