def fibonacci(n):
if n==0:
return 0
if n==1 | n==2:
return 1
f = (fibonacci(n-1) + fibonacci(n-2))
return f
嗨,我是python新手,我想实现一个递归的fibonacci函数,但是我的代码(上面)不起作用。当我调用这个函数时,终端打印第6行,直到达到递归深度极限。这里正确的语法是什么?
发布于 2016-07-04 17:41:29
您需要将=> |
更改为or
(算术或到逻辑OR)
def fibonacci(n):
if n==0:
return 0
if n==1 or n==2:
return 1
f = (fibonacci(n-1) + fibonacci(n-2))
return f
print fibonacci(6)
# 8
另一种选择是在第4行使用if (n==1)|(n==2):
希望它有帮助:)
发布于 2016-07-04 17:42:35
“x”是一种算术,不是一种逻辑。使用“或”
def fibonacci(n):
if n==0:
return 0
if n==1 or n==2:
return 1
f = (fibonacci(n-1) + fibonacci(n-2))
return f
https://stackoverflow.com/questions/38189840
复制相似问题