项目Euler#2#3

2024-09-30 01:30:03 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么这对我没用?我确信我的代码是正确的:

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


Tags: 代码inforreturnifdeffibonaccisum
2条回答

所以我运行了你的代码得到了这个:

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

根据这个链接,How to read a traceback

The last line will show the actual problem that caused the crash:

IndentationError: unexpected indent

IndentationError应该是不言自明的)。你知道吗

继续阅读回溯你应该有很好的提示哪里可能是错误。你知道吗

然后阅读这篇piece of PEP关于缩进规则的文章。基本上每个缩进级别使用4个空格,并且更喜欢空格而不是制表符(不要混合使用它们)。你知道吗

问题在于:

iter += 0

您似乎需要向iter添加1而不是0。希望这有帮助!你知道吗

相关问题 更多 >

    热门问题