繁体   English   中英

Python不会运行基本的斐波那契函数

[英]Python won't run a basic fibonacci function

我是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:
             ^

问题是什么?

看起来您混用了制表符和空格,在python中这是邪恶的;)您必须选择制表符或空格。

您发布的代码似乎可以正常工作,但是times = times + 1抱怨UnboundLocalError: local variable 'times' referenced before assignment ,因为times是一个全局变量,因此应该正常对待:

global times
times = times + 1

您在该行上有一个制表符。 按照PEP 8 (官方python样式指南)的建议使用缩进空格。

制表符或空格?

切勿混用制表符和空格。

缩进Python的最流行方法是仅使用空格。 第二受欢迎的方式是仅使用选项卡。 包含制表符和空格的缩进代码应转换为仅使用空格。 当使用-t选项调用Python命令行解释器时,它会发出有关非法混合使用制表符和空格的代码的警告。 当使用-tt时,这些警告变为错误。 强烈建议您使用这些选项!

对于新项目,强烈建议在选项卡上仅使用空格。 大多数编辑器都具有使其易于实现的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM