-1

我有这个代码:

num = range(1,33)
num[0]=1
num[1]=2
for i in range(2,32):
    num[i]=num[i-1]+num[i-2]


total=0
for i in range(0,32):
    print num[i]
    if num[i]%2==0:
    total=total+num[i]
    else:
    num[i]=num[i+1]

我想找到数组中偶数的总和num。谁能建议我在这里做错了什么?

4

2 回答 2

7

缩进在python中很重要

if num[i]%2==0:
total=total+num[i]
else:
num[i]=num[i+1]

应该

if num[i]%2==0:
    total=total+num[i]
else:
    num[i]=num[i+1]

此外,使用一致的缩进,例如每个你必须引入缩进的地方有 4 个空格。

于 2013-04-15T19:33:52.693 回答
2

或者:

total = sum([i for i in num if i % 2 == 0])
  • Sum( )将返回列表的总和。

  • [i for i in num if i % 2 == 0]是一个列表理解

例如:

>> num = [1,2,3,4]
>> tmp = [i for i in num if i % 2 == 0]
>> print tmp
[2,4]

>> total = sum(tmp)
>> print total
6
于 2013-04-15T19:37:01.273 回答