python基础练习2
来源:互联网 发布:东南大学没落 知乎 编辑:程序博客网 时间:2024/06/07 00:15
# 一边循环一边计算的机制,称为生成器# g=(x*x for x in range(10))# print g# print g.next()# for n in g:# print n# 斐波拉切数列# def fib(max):# n,a,b=0,0,1# while n<max:# print b# a,b=b,a+b# n=n+1# 如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator# def fib(max):# n,a,b=0,0,1# while n<max:# yield b# a,b=b,a+b# n=n+1# o=fib(3)# o.next()# o.next()# o.next()# for n in fib(6):# print n# map map()函数接收两个参数,一个是函数,一个是序列# def f(x):# return x*x# print map(f,[1,2,3,4,5,6,7])# reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算# def add(x,y):# return x+y# print reduce(add,[1,3,5,7,9])# def fn(x,y):# return x*10+y# def char2num(s):# return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]# print reduce(fn,map(char2num,'2134'))# 用lambda函数进一步简化成# def char2num(s):# return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]# def str2int(s):# return reduce(lambda x,y: x*10+y, map(char2num, s))# filter# def is_odd(n):# return n%2==1# print filter(is_odd,[1,2,3,4,5])# sorted# print sorted([36, 5, 12, 9, 21])# 闭包 返回函数不要引用任何循环变量,或者后续会发生变化的变量。# def lazy_sum(*args):# def sum():# ax=0# for n in args:# ax=ax+n# return ax# return sum# f = lazy_sum(1,2,3,4,6)# print f()# def count():# fs=[]# for i in range(1,4):# def f(j):# def g():# return j*j# return g# fs.append(f(i))# return fs# f1,f2,f3=count()# print f1() #执行到return就返回不再执行# print f2()# print f3()# 函数对象有一个__name__属性,可以拿到函数的名字:# 装饰器# def log(func):# def wrapper(*args,**kw):# print 'call %s():',func.__name__# return func(*args,**kw)# return wrapper# 把@log放到now()函数的定义处,相当于执行了语句:now = log(now)# @log# def now():# print '2015-9-1'# now()# 简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
0 0
- python基础练习2
- python基础练习2
- Python基础练习2
- python基础2练习
- Python基础练习
- python基础练习
- python基础练习笔记
- python基础练习笔记
- Python 基础练习01
- Python 基础练习02
- Python 基础练习03
- python基础练习1
- python 基础练习
- python 基础脚本练习
- python基础练习
- Python 基础练习
- python基础语句练习
- Python学习--基础代码练习
- java IO 字符编码相关
- 首尾相连数组的最大子数组和
- Android开发自定义UI组件
- ACM大数相乘
- Java跨日表查询方法与获取当前日期方法
- python基础练习2
- 下一代技术人
- 自学Java系列 笔记4 Java常用类 2
- Objective-c 之数组NSArray 可变数组NSMutableArray
- 学习笔记
- ubuntu 镜像源更新
- 利用散列结构查找字谜
- 推荐系统之基于二部图的个性化推荐系统原理及C++实现
- HDU 3998 Sequence 最大流 isap 加 dp