python知识捡拾---变量反转、阶乘实现、生成器原理

1.对输入变量进行反转输出

def func(x,y,z):
	l = [x,y,z]
	l.reverse()
	numbers = tuple(l)
	return numbers
x,y,z=func(0,1,2)
print x,y,z

2.常规实现阶乘的方法:

def func(n):
    if n==1:
        return 1
    elif(n>1):
        return n*func(n-1)
print(func(5))

快速实现阶乘的方法:

print("5!=",reduce(lambda x,y:x*y,range(1,6)))(python2)

3.Generator函数:

生成器的作用是一次产生一个数据项,并把数据项输出。
Generator函数 的定义和普通函数的定义没有什么区别,只要在
函数体内使用yield生成数据项即可。
Generator函数可以被for循环遍历,而且可以通过 next() 方法获得
yield生成的数据项。

示例:
def func(n):
    for i in range(n):
        yield i
for i in func(3):
    print i      # 0  1  2

r = func(3)
print r.next()   #0
print r.next()   #1
print r.next()   #2

yield保留字与 return 语句的返回值和执行原理都不相同,yield生成值并不会中止程序的执行,返回值后程序继续往后执行。return返回之后,程序将中止执行.

演示yield和return语句的区别:
def func(n):
    for i in range(n):
        return i

def func2(n):
    for i in range(n):
        yield i
print func(3)  #0
f = func2(3)
print f        #内存地址
print f.next() #0
print f.next() #1
print f.next() #2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值