2013-04-15 45 views
0

我有這樣的代碼:語法錯誤:錯誤的輸入 - Python的

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陣列英寸任何人都可以建議我在這裏做錯了嗎?

回答

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] 

此外,使用一致的縮進e.g 4位的每一個地方,你就來介紹壓痕。

+0

哇,從來沒有知道這個。非常感謝你指出了這一點。在使用其他語言之前,我真的不關心縮進。 –

+0

非常真實。這是一個很好的功能,它會強制你寫出可讀性很好的代碼 – karthikr

+0

@karthikr到了某個時候......在這個時候,它變成了屁股上的一大痛點:P – Ngenator

2

或者:

total = 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