2012-03-27 135 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)