我是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:
^
有什么问题?
答案 0 :(得分:3)
看起来你有混合标签和空格,这在python中是邪恶的;)你必须选择,制表符或空格。
您发布的代码似乎有效,但抱怨times = times + 1
的{{1}}除外,正常,因为时间是全局变量,因此也应该对其进行处理:
UnboundLocalError: local variable 'times' referenced before assignment
答案 1 :(得分:2)
该行上有一个制表符。根据{{3}}(官方python样式指南)的建议使用空格进行缩进。
标签或空格?
切勿混合标签和空格。
缩进Python最流行的方法是仅使用空格。该 第二种最流行的方式是仅使用标签。代码缩进了一个 标签和空格的混合应该转换为使用空格 只。使用Python调用Python命令行解释器时 -t选项,它会发出有关非法混合标签的代码的警告 和空间。使用-tt时,这些警告会出错。这些 强烈推荐选项!
对于新项目,强烈建议仅使用空格。 大多数编辑都具有使这很容易做到的功能。