函式遞迴 匿名函式 內建函式day15

2022-02-02 04:03:02 字數 1879 閱讀 5962

什麼是函式遞迴:

函式遞迴呼叫是一種特殊的巢狀呼叫,在呼叫乙個函式的過程中,又直接或間接地呼叫了該函式本身。

其中,函式的遞迴有明確的結束條件,不能無限制的呼叫,否則會撐破記憶體,在python中限定遞迴最多呼叫1000層。

1000層這個值是大概的數值,這個數值可以通過python內建的功能進行更改。

遞迴必須要有兩個明確的階段:

回溯:遞迴必須要有乙個明確的結束條件,在滿足該條件時結束遞推,開始一層層回溯

其中,遞迴的精髓在於通過不斷的重複逼近乙個最終結果。

迴圈(while)能做的,遞迴都可以,為什麼還要遞迴?

因為相較於迴圈,遞迴無須確定迴圈次數,只需確定結束條件。

舉個例子,遞迴的應用:

二分法:

有個從小到大排列對的列表,判斷某個值是否在裡面。

nums=[1,3,7,11,22,34,55,78,111,115,137,149,246,312]

def search(search_num,nums):

print(nums)

if len(nums)==0:

print('not exists')

return

mid_index=len(nums)//2

if search_num>nums[mid_index]:

nums=nums[mid_index+1:]

search(search_num,nums)

elif search_num有名函式:基於函式名重複使用

匿名函式:沒有繫結名字的下場就是使用一次就被**了。

定義:lambda x,y: x+y

其中冒號後面的值就相當於有名函式裡的return 後面的值

res=( lambda x,y: x+y)(1,2)

max 工作原理:

1、首先將可迭代物件變成迭代器物件

2、res=next(迭代器物件)將res當作引數傳給key指定的函式,然後將該函式的返回值當成判斷的依據。

map的工作原理:

1、首先將可迭代物件變成迭代器物件

2、res=next(迭代器物件)將res當作引數傳給第一引數指定的函式,然後將該函式的返回值當成結果之一

filter工作原理:

1、首先將可迭代物件變成迭代器物件

2、res=next(迭代器物件)將res當作引數傳給第乙個引數指定的函式,然後filter會判斷函式的返回值的真假,如果為真則留下res

1、res='你好』.encode('utf-8')

res=bytes('你好』,encoding='utf-8')

2、參考ascii碼將數字轉成對應的字元

print(chr(65))      #'a'

參考ascii碼將字元轉成對應的數字

print(ord('a'))      #97

3、將兩個數進行取模運算,得到商和餘數

print(divmod(10,3))      #(3, 1)

4、l=['a','b','c']      #列舉

for item in enumerate(l):

print(item)

5、l='[1,2,3]'      #將字串中的東西拿出了執行一遍

l1=eval(l)

print(l1,type(l1))

print(l1[0])

6、print(round(3.3))  #四捨五入

7、print(sum(range(101)))  #求和

8、將字串變成模組名

module=input('請輸入你要匯入的模組名》: ').strip() #module='asdfsadf'

m=__import__(module)

print(m.time())

python內建函式 匿名函式 遞迴

一 內建函式 內建函式詳解 二 匿名函式 匿名函式就是不需要顯示的指定函式 1 這段 2 def calc n 3 return n n 4 print calc 10 5 6 換成匿名函式 7 calc lambda n n n 8 print calc 10 匿名函式主要用來和其他函式搭配使用 ...

匿名函式,內建函式

lambda函式是一種快速定義單行的最小函式,可以用在任何需要函式的地方 一般函式定義 def fun x,y return x y匿名函式lambda定義 r lambda x,y x y print r 2,3 格式 lambda 引數列表 return 表示式 變數 lambda語句中,冒號前...

匿名函式,內建函式

匿名函式,他沒有繫結名字,使用一次即被收回,加括號既可以執行。lambda x,y x y 報錯 res lambda x,y x y 1,2 print res 不報錯 1.bytes 解碼字元 2.chr ord ascii 數字轉為字元 字元轉化為數字 3.divmod 分別取商和餘數 4.e...