原题链接:http://www.runoob.com/python/python-exercise-example11.html

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

分析:看起来挺复杂的,但是把每个月兔子数列出来:1,1,2,3,5,8,13... 就是斐波拉契序列。 所以编程核心是要实现后一个月等于前两个月的加和。使用了最近学的生成器写。

我的代码:

def rabbit():
a=b=1
while True:
yield a
a,b=b,a+b month =1
if __name__ =='__main__':
for i in rabbit():               #这是个无限循环,因为题目也没有说多少个月。。。要用ctrl终止
print("month:%d rabbits:%d" %(month,i))
month +=1                     #可以对month设置if条件语句,然后break循环

思考:

1.生成器的使用可以用for或者next

但是循环next(rabbit())是不行的,每次循环都是重新开始,所以输出的都是1

应该x=rabbit() 然后循环next(x)。

2.yield产生的数据,用next()也不能打出来,要再用个print()才会打出来。

最新文章

  1. 使用po模式读取豆瓣读书最受关注的书籍,取出标题、评分、评论、题材 按评分从小到大排序并输出到txt文件中
  2. 3dmax导出到blend或者vs中
  3. vyatta常用操作
  4. web.xml配置详解之欢迎页面和错误页面
  5. SAP-MM:创建采购组织、采购组
  6. SHELL网络爬虫实例剖析--转载
  7. QT中窗口刷新事件的学习总结
  8. MySQL优化面试
  9. HDU4466 Triangle 计数 容斥原理
  10. 带参数的main函数以及execl函数的应用
  11. SpringAOP学习第一天 @Pointcut注解
  12. spring(读取外部数据库配置信息、基于注解管理bean、DI)
  13. 201621123001《Java程序设计》第4周学习总结
  14. 修改 Semantic UI 中对 Google 字体的引用
  15. Linux chmod和chown更改文件目录的所属者命令的用法
  16. java newInstance() 的参数版本与无参数版本详解
  17. C语言多线程编程二
  18. Photon3Unity3D.dll 解析三——OperationRequest、OperationResponse
  19. linux命令(11):df命令
  20. 在libuv中使用openssl建立ssl连接

热门文章

  1. session 控制
  2. STL-set&&multiset 集合
  3. Java各种类
  4. 安装MySQL被提示缺少msvcr120.dll,msvcp120.dll或提示0xc00007b错误
  5. java文本文件加密
  6. P4883 mzf的考验[平衡树]
  7. python scraping webs - python取得NIPS oral paper列表
  8. 带你快速了解Linux文件系统
  9. RHEL 8 安装 Oracle 19c 注意问题
  10. openssl 生成免费证书