设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 10950|回复: 2
打印 上一主题 下一主题

python3 yield

[复制链接]

7

主题

0

好友

122

积分

注册会员

Rank: 2

跳转到指定楼层
楼主
发表于 2018-3-29 17:18:52 |只看该作者 |倒序浏览
#!/usr/bin/python3 import sys def fibonacci(n): # 生成器函数 - 斐波那契    a, b, counter = 0, 1, 0    while True:        if (counter > n):             return        yield a        a, b = b, a + b        counter += 1f = fibonacci(10) # f 是一个迭代器,由生成器返回生成 while True:    try:        print (next(f), end=" ")    except StopIteration:        sys.exit()

请问这段代码为什么函数里会有输出,函数里没有输出啊
回复

使用道具 举报

7

主题

0

好友

122

积分

注册会员

Rank: 2

沙发
发表于 2018-3-29 17:20:16 |只看该作者
#!/usr/bin/python3

import sys

def fibonacci(n): #生成器函数 - 斐波那契
a, b, counter = 0, 1, 0
while True:
        if (counter > n):
                return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(10)# f 是一个迭代器, 由生成器返回生成

while True:
        try:
        print(next(f), end = " ")
except StopIteration:
        sys.exit()
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2018-3-30 22:18:25 |只看该作者
输出是你的 print
yield负责返回值
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-12 09:39 , Processed in 0.025488 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部