生成器 (generator)
#生成器generator 在Python中,这种一边循环一边计算的机制,称为生成器,能节省大量的空间
L=[x*x
for
x
in range
(
1
,
11
)]
g=(x*x
for
x
in range
(
1
,
11
))
#创建L和g的区别仅在于最外层的[]和(),L是一个list,而g是一个generator
next
(g)
#如果要一个一个打印出来,可以通过next()函数获得generator的下一个返回值
for
n
in
g:
#用for循环,generator也是可迭代对象
print
(n)
#举例:斐波那契数列(Fibonacci)除第一个和第二个数外,任意一个数都可由前两个数相加得到
#1, 1, 2, 3, 5, 8, 13, 21, 34, ...
def
fib(max):
#fib函数是定义了斐波拉契数列的推算规则
n,a,b=
0
,
0
,
1
while
n<max:
print
(b)
a,b=b,a+b
n=n+
1
return
'done'
#如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator
def
fib(max):
#fib函数是定义了斐波拉契数列的推算规则
n,a,b=
0
,
0
,
1
while
n<max:
yield
b
a,b=b,a+b
n=n+
1
for
x
in
fib(
7
):
print
(x)
微信关注我们
原文链接:https://yq.aliyun.com/articles/604812
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
相关文章
发表评论
资源下载
更多资源优质分享App
近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。
Mario
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
Apache Tomcat
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Sublime Text
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。