day18 python學習 內置函數,匿名函數,裝飾器的
阿新 • • 發佈:2017-11-13
編碼 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學習 內置函數,匿名函數,裝飾器的