程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

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

发布于2019-11-17 19:29     阅读(816)     评论(0)     点赞(28)     收藏(0)


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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

def func(n):
    if n==1:
        return 1
    elif(n>1):
        return n*func(n-1)
print(func(5))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

快速实现阶乘的方法:

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

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13


所属网站分类: 技术文章 > 博客

作者:头疼不是病

链接:https://www.pythonheidong.com/blog/article/158417/1f199be701a2b45270fd/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

28 0
收藏该文
已收藏

评论内容:(最多支持255个字符)