python基礎之遞歸,匿名,內置函數

遞歸函數:python

         什麼是遞歸函數?函數

                  函數遞歸調用:在調用一個函數的過程當中,又直接或間接地調用了該函數自己。code

         遞歸必需要有兩個明確的階段:對象

                  ①遞推:一層一層遞歸調用下去,強調:每進入下一層問題規模減小blog

                  ②回溯:遞歸必需要有一個明確的結束條件,在知足該條件時,結束遞推,開始一層一層回溯遞歸

         遞歸的精髓在於經過不斷地重複逼近一個最終的結果utf-8

 

         遞歸的應用:字符串

                  二分法:it

l=[1,2,10,30,33,99,101,200,301,311,402,403,500,900,1000] #從小到大排列的數字列表
def search(n,l):
    print(l)
    if len(l) == 0:
        print('not exists')
        return
    mid_index=len(l) // 2
    if n > l[mid_index]:
        #in the right
        l=l[mid_index+1:]
        search(n,l)
    elif n < l[mid_index]:
        #in the left
        l=l[:mid_index]
        search(n,l)
    else:
        print('find it')


search(3,l)

 

匿名函數:class

         什麼是匿名函數:匿名函數就是沒有名字的函數,沒有名字就意味着用一次就回收了

         lambda x,y:x+y

    有名函數與匿名函數的對比
     有名函數:循環使用,保存了名字,經過名字就能夠重複引用函數功能
     匿名函數:一次性使用,隨時隨時定義
 
內置函數:
names={
    'egon':3000,
    'alex':100000000,
    'wupeiqi':10000,
    'yuanhao':2000
}
1.max()  and  min()
工做原理:1.首先將迭代對象變成迭代器對象
        2.res = next(可迭代對象),將res看成參數返回值,傳給key指定的函數,而後將該函數的返回值看成判斷比較大小的key
      max(names,key = lambda k:names[k])
 
2.sorted(names,key = lambda k:names[k],reverse = False) 
        結果爲['yuanhao', 'egon', 'wupeiqi', 'alex']
        reverse 默認爲false,false爲從小到大排列
 
3.   l = [1,2,3,4]
    map(lambda x:x**2,l)
    工做原理與max相同,但最後返回的是一個迭代器
 
4.filter(lambda k:names[k] > 5000,names)
    返回值爲迭代器,留下true的結果
 
帶*的必須掌握
雜:abs() 求絕對值       all()迭代每一個元素,都爲True才返回True,空返回True
bin() 轉換爲二進制      any()迭代每一個元素,有一個True就返回True,空返回False
oct() 轉換八進制               *bytes(‘您好’, encoding = ‘utf-80’) = ‘您好’.encode(‘utf-8’)
hex() 轉十六進制               callable()檢測是非能夠被調用
*chr() 參考ASCII將數字轉換成對應字符串
*ord() 參考ASCII將字符串轉換成對應數字
dir(time) 列舉time.後面的全部方法    *divmod(10,3)  獲得 (3,1) 即(商,餘數)
*eval(‘[1,2,3]’)  能夠把字符串裏面的列表變成列表
frozenset({1,2,3})  不可變集合     round(四捨五入)
globals()查看全局               locals()查看局部
__import__(‘module’)能夠用str導入模塊
相關文章
相關標籤/搜索