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))
答案 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