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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值