Python函数不返回
我是Python新手,正在通过ProjectEuler的练习学习Python的工作原理。问题2集中在斐波那契序列上,我为其创建了这个递归函数:Python函数不返回,python,Python,我是Python新手,正在通过ProjectEuler的练习学习Python的工作原理。问题2集中在斐波那契序列上,我为其创建了这个递归函数: def CalcFb(start,end): if (end<=4000000): CalcFb(end,start+end) else: print "Returning:",end return end print "Answer: {0}".format(CalcFb(star
def CalcFb(start,end):
if (end<=4000000):
CalcFb(end,start+end)
else:
print "Returning:",end
return end
print "Answer: {0}".format(CalcFb(start,start+1))
我使用以下命令调用函数:
start=1
我不明白为什么要打印“无”,它应该打印5702887。有人能帮我理解为什么会这样吗
谢谢
Dan递归时不返回任何值
def CalcFb(start,end):
if (end<=4000000):
return CalcFb(end,start+end) ### this needs to return a value as well
else:
print "Returning:",end
return end
def CalcFb(开始、结束):
如果(end在递归时没有返回任何值
def CalcFb(start,end):
if (end<=4000000):
return CalcFb(end,start+end) ### this needs to return a value as well
else:
print "Returning:",end
return end
def CalcFb(开始、结束):
if(end在if子句中缺少return语句:
if (end<=4000000):
return CalcFb(end,start+end)
if(endif子句中缺少return语句:
if (end<=4000000):
return CalcFb(end,start+end)
if(end对我来说它的返回2
>>> def CalcFb(start,end):
... if (end<=4000000):
... CalcFb(end,start+end)
... else:
... print "Returning:",end
... return end
...
>>>
>>> start=1
>>> print "Answer: {0}".format(CalcFb(start,start+1))
Returning: 5702887
Answer: 2
def CalcFb(开始、结束):
…如果(结束>>
>>>开始=1
>>>打印“答案:{0}”。格式(CalcFb(开始,开始+1))
返回:5702887
答复:二,
检查缩进。为我检查它的返回2
>>> def CalcFb(start,end):
... if (end<=4000000):
... CalcFb(end,start+end)
... else:
... print "Returning:",end
... return end
...
>>>
>>> start=1
>>> print "Answer: {0}".format(CalcFb(start,start+1))
Returning: 5702887
Answer: 2
def CalcFb(开始、结束):
…如果(结束>>
>>>开始=1
>>>打印“答案:{0}”。格式(CalcFb(开始,开始+1))
返回:5702887
答复:二,
检查缩进。发现得很好。非常感谢大家的帮助。发现得很好。非常感谢大家的帮助。@Lafada您对问题的编辑是有害的:您修复了(问题的一部分)代码中有哪些内容被破坏了,使得O.P.发布的输出无法实际计算问题中的代码。这可能会让一些人愿意花几分钟来帮助他们找出发生了什么。编辑时请小心。有问题的代码被破坏是可以的,这就是为什么会提出问题的原因。当然,下次我将确保它不会有害:)@Lafada您对问题所做的编辑是有害的:您修复了(问题的一部分)代码中有哪些内容被破坏了,使得O.P.发布的输出无法实际计算问题中的代码。这可能会让一些人愿意花几分钟来帮助他们找出发生了什么。编辑时请小心。有问题的代码被破坏是可以的,这就是为什么会提出问题的原因。当然,下次我将确保它不会有害:)更改代码后返回“2”,以将“return”语句带到“else”子句之外。请在回答时更改您的代码,而不是问题中发布的代码。忽略我的评论-在我第一次看到OP的代码之前未意识到它已被编辑!返回“2”在您更改代码后,将“return”语句置于“else”子句之外。请在回答时更改您的代码,而不是问题中发布的代码。忽略我的评论-在我第一次看到OP的代码之前,不知道它已被编辑!