欧拉计划#2 Python 3

时间:2018-08-16 22:37:38

标签: python python-3.x

为什么这对我不起作用?我确定我的代码正确:

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)

我已经检查了很多遍代码,但是它仍然告诉我语法错误。

问题参考:https://projecteuler.net/problem=2

2 个答案:

答案 0 :(得分:1)

所以我运行您的代码并得到了:

$ python3 euler2.py 
  File "euler2.py", line 19
    fib0 = fib1
    ^
IndentationError: unexpected indent

根据此链接How to read a traceback

  

最后一行将显示导致崩溃的实际问题:

IndentationError: unexpected indent

IndentationError应该是自我解释)。

继续阅读回溯,您应该可以很好地提示错误可能发生的地方。

然后阅读有关缩进规则的piece of PEP。基本上每个缩进级别使用4个空格,并且优先于制表符(不要混用)。

答案 1 :(得分:-3)

问题出在那行:

iter += 0

您似乎需要在iter中添加1而不是0。希望这会有所帮助!