正在返回值 none 斐波那契数列
The value none is being returned Fibonacci sequence
我完全不明白为什么我的代码会返回 none。我是新来的,已经搜索了一段时间,但我仍然迷路了。
class Fibonacci:
def __init__(self, max = 0):
self.max = max
def __iter__(self):
self.n = 0
return self
def __next__(self):
if self.n <= self.max: # if n is less that 0
def FIB(number):
if number == 1 or number == 2:
return 1
else:
return FIB(number - 1) + FIB(number - 2)
self.n += 1
else:
raise StopIteration
您每次调用 __next__
时,您的实施花费的时间越来越多。应该使用迭代方法,而不是使用迭代的恒定复杂性:
class Fibonacci:
def __init__(self, max = 0):
self.max = max
self.a = 0
self.b = 1
def __iter__(self):
self.a = 0
self.b = 1
return self
def __next__(self):
self.a, self.b = self.b, self.a + self.b
if self.a <= self.max: # if n is less that 0
return self.a
else:
raise StopIteration
我完全不明白为什么我的代码会返回 none。我是新来的,已经搜索了一段时间,但我仍然迷路了。
class Fibonacci:
def __init__(self, max = 0):
self.max = max
def __iter__(self):
self.n = 0
return self
def __next__(self):
if self.n <= self.max: # if n is less that 0
def FIB(number):
if number == 1 or number == 2:
return 1
else:
return FIB(number - 1) + FIB(number - 2)
self.n += 1
else:
raise StopIteration
您每次调用 __next__
时,您的实施花费的时间越来越多。应该使用迭代方法,而不是使用迭代的恒定复杂性:
class Fibonacci:
def __init__(self, max = 0):
self.max = max
self.a = 0
self.b = 1
def __iter__(self):
self.a = 0
self.b = 1
return self
def __next__(self):
self.a, self.b = self.b, self.a + self.b
if self.a <= self.max: # if n is less that 0
return self.a
else:
raise StopIteration