PYTHON之路(四)
迭代器
裝飾器 ( http://www.cnblogs.com/wupeiqi/articles/4980620.html )
@w1 --- > 執行w1, 把自己裝飾的函數的函數名作為參數, 即w1(index) ; w1(index)有返回值為inner, 賦予了裝飾器裝飾的函數,即index, 新index = inner;
index('aa',paa='ww') --- > 實例化index, 或者叫做調用index函數,即執行inner函數, 里面的main_func函數執行的是原來的index函數
裝飾器帶參數
def before(*args,**kwargs):
print('before')
def after(*args,**kwargs):
print('after')
def w1(before_func,after_func):
def outer(main_func):
def inner(*args,**kwargs):
before_func()
main_func(*args,**kwargs)
after_func()
return inner
return outer
@w1(before,after) # 先執行w1(before,after) -----》 得到 outer ----- > @outer ------ > new index = inner ---- > 執行 inner
def index(*args,**kwargs):
print(args,kwargs)
index('aa',passw='coo')
遞歸
斐波那契數列
二分查找
這里有一個小BUG,其實也不算BUG了,就是binarySearch(data, 700), 即我要搜索的數并不在范圍里,會不斷的循環,直至出錯。為什么會這樣? 留給你們思考。
4*4二維數組順時針旋轉90度
#!/usr/bin/env python
data=[[i for i in range(4)] for row in range(4)]
for i in data:
print i
print "--------------------------"
for r_index,row in enumerate(data):
for c_index in range(r_index,len(row)):
tmp = data[c_index][r_index]
data[c_index][r_index]=row[c_index]
row[c_index]=tmp
for i in data:
print i
print
print "##############################################################"
print
data=[[i for i in range(4)] for row in range(4)]
for i in data:
print i
print "--------------------------"
for r_index,row in enumerate(data):
for c_index in range(len(row)):
print data[c_index][r_index],
print
正則表達式
轉載于:https://www.cnblogs.com/joey251744647/p/5196588.html
總結
以上是生活随笔為你收集整理的PYTHON之路(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 定制化Azure站点Java运行环境(1
- 下一篇: npm常用命令整理