python编码-斐波那契

1

    def __init__(self):
        self.a,self.b = 0 ,1  # 初始化两个计数器a,b

    def __iter__(self):  # 实例本身就是迭代对象,故返回自己
        return self

    def __next__(self):
        self.a,self.b = self.b,self.a+self.b  # 计算下一个值
        if self.a > 100:                # 退出循环的条件
            raise StopIteration()
        return self.a               # 返回下一个值

for n in Fib():
    print(n)

2.单个输出第t个数

def fib(num):

    a,b,c=1,1,0
    if num <=0:
        print ('wrong')
    if num > 0 and num <= 2:
        print ('1')
    else:
        while num > 2:
            a,b =b,a+b
            num = num-1
        print (b)
            
    return 0

t = 3
fib(t)

注意:a,b = b,a+b相当于(a,b)= (b,a+b)

3.从第一位输出直到第n个数

def fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        print(b)
        a, b = b, a + b
        n = n + 1
    return 'done'

>>> fib(6)
1
1
2
3
5
8
'done'

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 3,829评论 0 13
  • 食:三月的最后一天,我下载了食谱,开始轻卡饮食,结果早上中午太重视,吃的虽然撑到了却缺主食,导致下午天还没黑就饿得...
    bony阅读 64评论 0 0
  • 生薇薇那天,疼了近三十个小时,终于感觉顺产无望,转剖,做皮试的时候,护士动作失误,右手腕突然飙出一小股血来,若...
    浪里个浪77阅读 318评论 0 0
  • 金句-你在未来某一天成功后,一定会感谢当年苦逼加班的自己 花了三小时因买到了便宜三百块的货而高兴_--你的时间是有...
    伦敦见伦敦阅读 109评论 0 0