python编写递归函数,求斐波那契数列,python用递归求斐波那契
今天,边肖为您带来Python的收益率教程。我不知道很多新人会和编辑有什么反应。况且网上也没有足够简单的教程。我觉得编辑有必要在回复大家之后说一句屈服。
在说yield之前,我们必须明确两个概念:什么是迭代器,什么是生成器。然后,先熟悉这两个概念,再去看yield。
迭代器(迭代器)。
我们不应该知道迭代的概念。之前在for循环中说过。所以,现在让我们回顾一下:
对于像技能这样的列表集,输出中的所有元素都是必需的。可以在for循环中重复技能。换句话说,skills是一个迭代对象(循环对象)。什么是迭代器?
迭代器是一种容器,可以创建可以回收任意数据结构(比如列表、元组、字符串或者字典)的容器,其中所有元素都可以通过使用for语句按顺序检索。
(仔细掂量这句话,在你脑海里会变好的!)
发电机(发电机)
刚刚说了迭代器,我来说生成器。创建迭代器有三种方法。(此处不讨论。有兴趣的同学请看前两条。分别是__iter__()和__next__())方法中的内置函数iter)。第三种方法是生成器。
生成器如何生成迭代器?
很简单。让我们来看看关于关键字yield的代码,这是我们今天要讨论的话题。
边肖在这里做了一个函数来制作kwdbl序列。这里使用了关键字“yield”。我们来看看yield在哪里。
我们先来看另一个函数:
我们来看看这两个函数的区别。仔细观察后发现,一个是yield b,一个是print(b),其他没什么区别。
好了,接下来我们进行下一步,把这两个功能拿出来,看看有什么不同!
(此处键入))介绍函数。它致力于确定特定的数据类型。只是把应该判断的数据放在type后面的括号里)
那么,让我们运行这两个函数的类型。然后,付诸实践,看结果。
输出:
区别很明显。fab2函数仅在作为自定义函数运行时为NoneType,并且仅在为type(fab2)时输出。
这时候就有了产量的作用。执行结果类型为生成器。也就是说,他成了发电机!
就因为一字之差,他们的根本属性就变了!由于yield的存在,函数fab永远变成了发电机!
这是发电机。
产量
然后,再来说说收益率本身!既然你有这么大的能力,你应该知道怎么控制它。
首先,让我们看看这个简单的函数:
这是一个伟大的功能。里面除了屈服,什么都没有。然后,把里面的元素都拿出来看看。所以,现在直接执行这个函数:
输出:
如果直接执行这个函数,发现无法在生成器对象中输出。因为是发电机,所以要反复输出。
输出:
好了,结果成功输出!
所以,让我们回到fab函数。对于这样一个函数,我们应该如何执行输出?
请.
认为.
对…进行实验。
电影.
铭记.
输出:
正确输出kwdbl的前6个结果!
到目前为止,我们知道yield是什么样的,函数会变成迭代器,以及如何使用(需要反复输出)。
下次见!
听说有气质的人都会关注这个微信官方账号!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。