1. 程式人生 > >day18 python學習 內置函數,匿名函數,裝飾器的

day18 python學習 內置函數,匿名函數,裝飾器的

編碼 color 返回值 空字符 before 篩選 等於 是不是 執行函數

format的用法

print(format(aa,>20))
print(format(aa,<20))
print(format(aa,^20))

打印結果如下

                  aa
aa                  
         aa     

sort 用法 li. sort() 得到的是新的列表li 從小到大排列 li.sort(reverse=True)#這個是倒敘排列(從大到小)

sorted ret=sorted(li) 的到的是一個可叠代對象,需要print(list(ret)) 強轉列表

在打印才能取出他的值

reverse 與sort相同

reversesed 與sorted相同

print(globals())#打印全局變量,
print(locals())#打印局部變量


a=‘你好‘

b=a.encode(‘utf-8‘) 編碼 ,將文字編碼成二進制形式
print(t)
#打印結果是   b‘\xe4\xbd\xa0‘   實質是二進制,內置的ide轉成十六進制了


c=b.decode(‘utf-8‘) 解碼
print(c)
#打印結果是 你 將二進制解碼成文字

#bytearray
ret = bytearray(‘alex‘,encoding=‘utf-8‘)#對比較長的字符串做修改的時候,
# 指定某一處進行修改,不會改變這個bytearry的內存地址
print(id(ret))
print(ret[1])
ret[1]=11
print(id(ret))
a=ret.decode(utf-8)
print(a)  #  這是打印結果 aex
print(ord(v))#  118  打印一個字母的ascll碼的十進制值

print(chr(97))#  a  這個可以打印出ascll碼值對應的字母

print(repr(sada))# ‘sada‘ 可以打印出這種帶字符串和它帶的引號的格式

print(name:%r%(金老板)) #這個同上,打印結果  name:‘金老板‘
#enumerate    #枚舉
l = [筆記本, phone, apple, banana] for i,k in enumerate(l,1): 這裏兩個參數來接受,i接受後邊的數字print(i,k)
#拉鏈函數 zip  他會將數值按照最終的數量值轉換成對應數量的拉鏈元祖形式的
print(list(zip([0,1,2,3,4],[5,6,7,8],[a,b])))
#這是打印結果[(0, 5, ‘a‘), (1, 6, ‘b‘)]

filter 過濾,過濾器

map

#filter(方法也就是函數,可叠代對像)就是有一個可叠代對象,
# 想要一個新的內容集,是從原可叠代對象中篩選出來的
#新內容少於等於原內容的時候,才能用到filter
def func1(X):
    if X>10:
       return True
ret1=filter(func1,[1,22,3,45,12,6])#有返回值,返回的是一個叠代器
print(list(ret1))
#去掉所用空內容(None)和空字符串(內容為空格)
l=[sad,dsz,None,   , DSA]

def func(x):
    return x and x.strip()#直接return新的值,當裏邊的值不為空,而且x.strip()之後不是空的,
    # 意思是不是空格的就可以
ret=filter(func,l)
print(list(ret))
#map(function,itrator)  #返回一個與原來數量相同的叠代器
ret=map(abs,[-1,-5,5,6,-11])
print(list(ret))
#filter和map
#參數很相近:都是一個函數名+可叠代對象
#且返回值頁很相近:都是返回可叠代對象
#區別
#filter是做篩選的,結果還是原來就在可叠代對象中的項
#裝飾器進階
#裝飾器的進階有兩個
@func1
@func2
def ada()
#俄羅斯套娃式函數,裏邊套靠近函數的
#裝飾器函數,外邊套另一個函數# 要記住是那個套那個的
ef wrapper1(func):
    def inner1(*args,**kwargs):
        print(in wrapper 1,before)
        ret = func(*args,**kwargs)   #qqxing
        print(in wrapper 1,after)
        return ret
    return inner1

def wrapper2(func):     #inner1
    def inner2(*args,**kwargs):
        print(in wrapper 2,before)
        ret = func(*args,**kwargs)   #inner1
        print(in wrapper 2,after)
        return ret
    return inner2
#當一個函數要引用兩個裝飾器才能完成功能時
@wrapper2  #先在外層執行這個的第一句
@wrapper1  #在執行這個地方執行的所有內容,然後再返回去執行上邊的函數剩下的內容
def qqxing():
    print(qqxing)
qqxing()

#裝飾器進階2 帶有def outer():的函數

def outer(flag):  #這裏寫的是要傳入的標誌位,作用
    # 是給裝飾器在通過標誌位判斷在執行時要不要執行if  flag的內容
    def timer(func):
        def inner(*args,**kwargs):
            if flag:
                print(‘‘‘執行函數之前要做的‘‘‘)
            re = func(*args,**kwargs)
            if flag:
                print(‘‘‘執行函數之後要做的‘‘‘)
            return re
        return inner
    return timer

@outer(False)#在這裏傳入要不要執行那句的條件
def func():
    print(111)

func()





day18 python學習 內置函數,匿名函數,裝飾器的