Python不会运行基本的fibonacci函数

时间:2011-11-22 08:10:28

标签: python

我是python的新手,无法弄清楚简单的fibonacci函数有什么问题。它还计算函数的迭代次数。

以下是代码:

times = 0;

def fib(n):
    times = times + 1
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib(n-1) + fib(n-2)

当我运行它时,出于某种原因我收到了这个错误:

IndentationError: unindent does not match any outer indentation level

  File "fibo.py", line 7
    if n == 0:
             ^

有什么问题?

2 个答案:

答案 0 :(得分:3)

看起来你有混合标签和空格,这在python中是邪恶的;)你必须选择,制表符或空格。

您发布的代码似乎有效,但抱怨times = times + 1的{​​{1}}除外,正常,因为时间是全局变量,因此也应该对其进行处理:

UnboundLocalError: local variable 'times' referenced before assignment

答案 1 :(得分:2)

该行上有一个制表符。根据{{​​3}}(官方python样式指南)的建议使用空格进行缩进。

  

标签或空格?

     

切勿混合标签和空格。

     

缩进Python最流行的方法是仅使用空格。该   第二种最流行的方式是仅使用标签。代码缩进了一个   标签和空格的混合应该转换为使用空格   只。使用Python调用Python命令行解释器时   -t选项,它会发出有关非法混合标签的代码的警告   和空间。使用-tt时,这些警告会出错。这些   强烈推荐选项!

     

对于新项目,强烈建议仅使用空格。   大多数编辑都具有使这很容易做到的功能。

相关问题