码迷,mamicode.com
首页 > 编程语言 > 详细

PYTHON之路(四)

时间:2016-02-17 22:23:11      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:


迭代器


技术分享


装饰器 ( 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




技术分享




正则表达式


技术分享

PYTHON之路(四)

标签:

原文地址:http://www.cnblogs.com/joey251744647/p/5196588.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!