我试图在Project Euler的帮助下学习Python。
我对这段代码(对于问题2)有一点麻烦,究竟是什么' Non type'是。我想知道是否有人可以帮我指出正确的方向!
from math import sqrt
x= 0
def f(n):
return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))
def SubFib(startNumber, endNumber):
n = 0
cur = f(n)
while cur <= endNumber:
if startNumber <= cur:
print (cur)
n += 1
cur = f(n)
for i in range(SubFib(1,4000000)):
if i % 2 ==0:
x = i+ x
提前感谢你!
答案 0 :(得分:2)
如果某些内容的值为NoneType
并且您尝试对其执行某些操作,则会发生None
错误。在这种情况下,您的SubFib
函数永远不会返回任何内容,因此当您调用它并将结果传递给range()
时,它会尝试运行range(None)
。
也许您希望SubFib
最后有return n
?