2012-03-27 84 views
0

我一直在試圖計算所有這些ord s的總和,所以我決定使用sum()內置函數。Python,總和()問題

雖然在運行腳本時輸出總和x4,但會發生什麼情況。有人知道爲什麼

T = ord('a'), ord('b'), ord('c'), ord('d') 

for c in T: 
    c = sum(T) 
    print(c) 

編輯:

T = "hi chris" 

total = 0 
for c in T: 
    total += ord(c) 
    print(total) 

這似乎是工作,但其計算每一個單獨的,我想1個總和與總,而不是每個字符總單獨...

+2

OK,我會問一個明顯的問題(?):什麼是求和點一堆字符中的每一個的ord()?它似乎是在那裏與一些城市的緯度或經度或某些着名人士的出生年數相加...... – 2012-03-27 10:58:01

回答

6

你不不需要將sum放入循環中。它會自動在整個列表中工作。

total = sum(T) 

另外,不要使用sum

total = 0 
for c in T: 
    total += c 

在這種情況下,你可以使用一個循環。

有關更多信息,請參閱built-in functions文檔。

+0

甚至是'sum([ord(_)for _ in「abcd」])' – Kimvais 2012-03-27 10:46:34

+0

@Kimvais :你不需要創建列表,只需使用'sum(ord(i)for i in「abcd」)'。你也可以像'sum(map(ord,「abcd」))'一樣使用地圖。 – Tadeck 2012-03-27 10:48:43

+1

@Kimvais他還在學習基本循環。 – agf 2012-03-27 10:49:02

2

您的for循環不正確。您正在重新計算每個循環的總和T。相反,這樣做的:

for c in T: 
    c = sum(T) 
    print(c) 

做到這一點:

print(sum(T)) 

或本:

s = 0 
for c in T: 
    s += c 
print(s)