我有这段代码:
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
数组中偶数的总和。谁能提出我在这里做错了什么?
答案 0 :(得分: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个空格。
答案 1 :(得分:2)
<强>可替换地:强>
total = sum([i for i in num if i % 2 == 0])
Sum( )将返回列表的总和。
[i for i in num if i % 2 == 0]
是List Comprehensions。
例如:
>> 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