如果乙個函式在內部呼叫自己本身,這個函式就是遞迴函式。
在使用遞迴時,需要注意以下幾點:
(1)自己呼叫自己
(2)必須有乙個明確的遞迴結束條件,稱為遞迴出口。
練習1:使用遞迴函式向控制台列印3,2,1
def print_num(num):
print(num)
if num == 1
return
print_num(num-1)
print('--->')
print_num(3)
'''321
--->>
--->>
'''
練習2:計算1到10的階乘:例如1*2*3*4*5...*10
def func(n):
if n == 1
return
return n*func(n-1)
num = func(10)
print(num)
3628800
練習3:查詢數字:通過程式查詢輸入的number值
def search(number,start,end):
if number == start:
return start
else:
middle = (start+end)//2
if number <= number
return search(number,middle,end)
else:
return search(number,start,middle)
ret = search(2,1,10)
print(ret)
1 abs()函式 求數字的絕對值
ret = abs(-21)
print(ret) 21
2 max()函式 求最大值
max(iterable, key, default) 求迭代器的最大值,
其中iterable 為迭代器,max會for i in … 遍歷一遍這個迭代器,
然後將迭代器的每乙個返回值當做引數傳給key=func 中的func(一般用lambda表示式定義) ,然後將func的執行結果傳給key,然後以key為標準進行大小的判斷。
1,簡單使用max()函式
ret = max(1,2,3)
print(ret) 3
2 ,使用key關鍵字
key = 函式名稱 ,--->指定求最大值的規則
ret = max(1,2,-3,key=abs)
print(ret) # -3
3,根據name和price返回自大的資訊
lst =[,,
]根據name值進行比較,返回商品資訊
根據priced的值進行比較 返回商品資訊
def max_name(dic):
return dic['name']
den max_price(dic):
return dic['price']
ret = max(lst,key = max_name)
ret2 = max(lst,key =max_price )
print(ret)
print(ret2)
''''''
3 map() 函式
有兩個引數,第乙個引數是乙個函式,第二個引數是可迭代內容
函式會依次作用在可迭代內容的每乙個元素上進行計算,然後返回乙個新的可迭代內容
練習 1 lst中的每乙個元素的平方值
lst = [1,3,5]
def square(num):
num2 = num *num
return num2
ret = map(square,lst)
print(ret)
for i in ret:
print(i)
ret1 = list(map(square,lst))
print(ret1)19
25[1, 9, 25]
4filter()函式
filter()用於過濾序列,過濾掉不符合條件的元素,返回符合條件元素組成的新列表。
該接收兩個引數,第乙個為函式,第二個為序列,序列的每個元素作為引數傳遞給函式進行判斷
然後返回true 或false ,最後將返回true的元素放到新列表中。
練習1 過濾出列表中的所有奇數
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
def odd(num):
if num % 2 == 1:
return num
ret = filter(odd,lst)
print(list(ret))
for i in ret:
print(i)
'''[1, 3, 5, 7, 9]
'''
Python基礎 遞迴函式
通俗一點來說在函式的內部,直接去呼叫其他函式的方式叫做函式的巢狀.但是,如果這個函式呼叫的是自身呢?這個樣子的函式自身就屬於遞迴函式 經典例項 階乘自身就能用遞迴函式來表達出來 1 1 2 2 1 3 3 2 1 n n n 1 2 1以上是簡單直接說明了階乘的表達,接下來至二級用函式來進行直接表達...
python基礎 遞迴函式
遞迴函式 能自己呼叫自己的函式。特點 1必須有乙個明確的結束條件。否則會成死迴圈 2每次進入更深一層遞迴時,問題規模比上一層要減少。否則記憶體會撐爆 3遞迴效率不高,容易導致棧溢位。引入遞迴函式,先看乙個函式呼叫的執行順序。執行順序 如下圖。執行 過程中遇到函式,會在記憶體中載入函式,但不會執行,呼...
python基礎 函式遞迴
函式不僅可以巢狀定義,還可以巢狀呼叫,即在呼叫乙個函式的過程中,函式內部又呼叫另乙個函式,而函式的遞迴呼叫指的是在呼叫乙個函式的過程中又直接或間接地呼叫該函式本身 例如在呼叫f1的過程中,又呼叫f1,這就是直接呼叫函式f1本身 在呼叫f1的過程中,又呼叫f2,而在呼叫f2的過程中又呼叫f1,這就是間...