python中的斐波那契无法运行接收语法错误或其他错误的代码

时间:2018-10-19 17:58:34

标签: python fibonacci

enter image description here我尝试运行此代码以获取1-11范围内的斐波那契数

def fibonacci(n):
  if n == 1  or n == 2
    return 1
  return fibonacci(n-1) + fibonacci(n-2)
for i in range (1, 11):
  print(fibonacci(i))

但是我得到了:

**Traceback (most recent call last):
  File "python", line 2
    if n == 1  or n ==2
                      ^
SyntaxError: invalid syntax**

在此视频教程中,家伙正在做同样的事情并得到结果 我不明白-https://www.youtube.com/watch?v=Cz476EsH1Lc&t=3s 3:10

版本为2.7.6

现在即时通讯: IndentationError:预期出现缩进的块-已解决

现在我正在尝试仅打印fibonacci = 11的值,但失败了,我没有结果 def fibonacci(n):   如果n == 1或n == 2:     返回1    返回斐波那契(n-1)+斐波那契(n-2)   打印(斐波那契(11))

3 个答案:

答案 0 :(得分:3)

如果您完全复制了代码(除了格式化-缩进在python中非常重要),那么问题就出在:之后缺少了n==2

它应该看起来像这样:

def fibonacci (n):
    if n == 1 or n == 2: # the colon is missing here.
        return 1
    return fibonacci(n-1) + fibonacci(n-2)
...

答案 1 :(得分:2)

您的错误表明您在:语句中错过了if。另外,您的缩进不正确。

if n == 1 or n ==2:  # focus on ':' at the end.

答案 2 :(得分:1)

您遇到语法问题:带空格和“:”。您的代码将像这样工作:

def fibonacci (n) :
  if n == 1  or n ==2:
    return 1
  return fibonacci (n-1)  + fibonacci(n-2)
for i in range (1,11):
  print (fibonacci (i))

另一个例子:

def fibonacci2(num):
  a = 1
  b = 0
  res = []
  temp=0
  while (num >= 0):
    temp = a
    a = a + b
    b = temp
    res.append(b)
    num -= 1
  return res