为什么这对我不起作用?我确定我的代码正确:
def fibonacci_even_sum(n):
if n == 0:
return 0
if n == 1:
return 0
if n == 2:
return 2
sum = 2
fib0 = 0
fib1 = 1
fib2 = 2
iter = 0
while(fib2 <= n):
if(iter == 3):
sum = sum + fib2
iter = 0
fib0 = fib1
fib1 = fib2
fib2 = fib0 + fib1
iter += 0
return sum
for i in range(1000000):
fibsum = fibonacci_even_sum(4000000)
print(fibsum)
我已经检查了很多遍代码,但是它仍然告诉我语法错误。
答案 0 :(得分:1)
所以我运行您的代码并得到了:
$ python3 euler2.py
File "euler2.py", line 19
fib0 = fib1
^
IndentationError: unexpected indent
最后一行将显示导致崩溃的实际问题:
IndentationError: unexpected indent
(IndentationError应该是自我解释)。
继续阅读回溯,您应该可以很好地提示错误可能发生的地方。
然后阅读有关缩进规则的piece of PEP。基本上每个缩进级别使用4个空格,并且优先于制表符(不要混用)。
答案 1 :(得分:-3)
问题出在那行:
iter += 0
您似乎需要在iter中添加1而不是0。希望这会有所帮助!