python简单脚本之斐波那契数列

斐波那契数列,是这样的一组数列

0,1,1,2,3,5,8,13,21,34,55........

简单的概括一下,就是从第三个数起,等于前面两个数字的和

求斐波那契数列最正统的方法就是函数递归了,不过对于python而言,有更加简单的方法操作,这得益于python独有的数据类型----列表,列表可以使用append方法在列表的尾部追加数据,这样一来,求斐波那契数列就变成简单的加法游戏了,无须递归求解

编写fibonacci.py,代码如下:

#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'
class Fibonacci(object):
    '''返回一个fibonacci数列'''
    def __init__(self):
        self.flist = [0, 1] #设置初始数列
        self.main()

    def main(self):
        listLen = input('请输入斐波那契数列的长度(3-50):')
        self.checkLen(listLen)
        while len(self.flist) < int(listLen):
            self.flist.append(self.flist[-1] + self.flist[-2])
        print('得到的fibonacci数列为:\n {}'.format(self.flist))

    def checkLen(self, lenth):
        lenList = map(str, range(3, 51))
        if lenth in lenList:
            print(u"输入的长度符合标准,继续运行")
        else:
            print(u'只能输入3 - 50,太长了不是算不出,只是没必要')
            exit()

if __name__ == '__main__':
    st = Fibonacci()

应该看到的效果

python独有的列表类型,在获取递归队列时有独特的优势

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术总结

《Objective-C高级编程》温故知新之"Blocks"

在计算机科学中,此概念也称为闭包(Closure)、lambda计算等。Swift中称作闭包

1544
来自专栏陈树义

4.Redis常用命令:List

  在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入...

3549
来自专栏LEo的网络日志

python技巧分享(三)

36010
来自专栏木子昭的博客

尾递归是怎么一回事?什么是尾递归?

50%的算法问题都能通过递归来解决,倒不是说递归本身有多厉害,只是说明递归的思想让很多复杂的问题变得简单! 啥? 了解数据结构的人都知道, 树结构本身就是用递...

8436
来自专栏LinXunFeng的专栏

iOS - 通过runtime获取某个类中所有的变量和方法

1092
来自专栏iOS技术杂谈

iOS @property探究(一): 基础详解你要知道的@property都在这里

你要知道的@property都在这里 本文大纲 Apple Adopting Modern Objective-C翻译 @property基本用法 @prope...

4339
来自专栏前端架构与工程

JavaScript递归中的作用域问题

需求是这样的,从子节点寻找指定className的父节点,一开始就想到递归(笨!),Dom结构如下: <div class="layer_1"> <di...

1858
来自专栏老司机的简书

老司机出品——源码解析之从Block说开去

近来把《iOS与OS X多线程和内存管理》这本书又掏出来看了一遍,这本书前前后后加起来看了能有三四遍了,每次看都有新的理解。现在就把个人对Block的一些理解记...

1073
来自专栏微信终端开发团队的专栏

JSPatch 实现原理详解

JSPatch 是一个 iOS 动态更新框架,只需在项目中引入极小的引擎,就可以使用就可以使用 JavaScript 调用任何 Objective-C 原生接口...

3968
来自专栏黑泽君的专栏

Scanner类的概述及其构造方法

1091

扫码关注云+社区

领取腾讯云代金券