刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

单选题

Python中yield是一个类似return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值。下一次迭代时,从上一次迭代遇到的yield后面的代码(下一行)开始执行。下列程序的输出结果是?( ) def fun(): a,b = 1,1 while True: yield a a,b = b,a+b c = fun() for i in range(6): print(c.__next__(),end = ' ')

A
1 1 2 3 5 8
B
1 1 2 2 3 3
C
8 5 3 2 1 1
D
1 2 3 4 5 6
使用微信搜索喵呜刷题,轻松应对考试!

答案:

A

解析:

【喵呜刷题小喵解析】首先,我们分析给定的Python函数`fun`。这个函数使用了一个无限循环`while True`,并在每次循环中执行两个操作:首先,它使用`yield`关键字返回当前的`a`值,然后更新`a`和`b`的值。接下来,我们创建一个`fun`的实例`c`,并使用一个`for`循环来迭代前6次结果。在每次迭代中,我们使用`c.__next__()`来获取下一个值,并将其打印出来。初始时,`a`和`b`的值都是1。因此,第一次迭代`yield a`返回1,然后`a,b = b,a+b`将`a`更新为1,`b`更新为2。下一次迭代,`yield a`返回2,然后`a,b = b,a+b`将`a`更新为2,`b`更新为3。这个过程继续,每次迭代返回当前的`a`值,并更新`a`和`b`的值。因此,程序输出的前六个值是1 1 2 3 5 8。选项A是正确的。
创作类型:
原创

本文链接:Python中yield是一个类似return 的关键字,迭代一次遇到yield时就返回yield后

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share