4 回答
TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
sum(iterable[, start]) ,iterable為可迭代對(duì)象,如:
sum([ ], start) , #iterable為list列表。
sum(( ), start ) , #iterable為tuple元組。
最后的值=可迭代對(duì)應(yīng)里面的數(shù)相加的值 + start的值
start默認(rèn)為0,如果不寫就是0,為0時(shí)可以不寫,即sum()的參數(shù)最多為兩個(gè),其中第一個(gè)必須為iterable。
按照慣例,在開發(fā)語(yǔ)言中,sum函數(shù)是求和函數(shù),求多個(gè)數(shù)據(jù)的和,而在python中,雖然也是求和函數(shù),但稍微有些差別,sum()傳入的參數(shù)得是可迭代對(duì)象(比如列表就是一個(gè)可迭代對(duì)象),返回這個(gè)被傳入可迭代對(duì)象內(nèi)參數(shù)的和。
比如:
TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
按照慣例,在開發(fā)語(yǔ)言中,sum函數(shù)是求和函數(shù),求多個(gè)數(shù)據(jù)的和
而在python中,雖然也是求和函數(shù),但稍微有些差別,sum()傳入的參數(shù)得是可迭代對(duì)象(比如列表就是一個(gè)可迭代對(duì)象),返回這個(gè)被傳入可迭代對(duì)象內(nèi)參數(shù)的和。比如:
還可以給一個(gè)初始值,比如:
這樣得到的結(jié)果就是在20基礎(chǔ)之上再加上可迭代對(duì)象內(nèi)參數(shù)的和
補(bǔ)充一句,sum函數(shù)既然只能傳入可迭代對(duì)象,那么整形數(shù)據(jù)是不行的,會(huì)報(bào)錯(cuò),比如:
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
sum(iterable[, start]) ,iterable為可迭代對(duì)象,如:
sum([ ], start) #iterable為list列表
sum(( ), start ) #iterable為tuple元組
......
最后的值 = 可迭代對(duì)象里面的數(shù)相加的值 + start的值
start默認(rèn)為0,如果不寫就是0,為0時(shí)可以不寫
即sum()的參數(shù)最多為兩個(gè),其中第一個(gè)必須為iterable,例如:
>>> sum([1, 2, 3,], 4)
10
>>> sum((1, 2), 3)
6
如果你寫成sum([1,2,3]),start就是默認(rèn)值 0
>>> sum([1, 2, 3])
6
>>> sum([ ], 2)
2
>>> sum(( ), )
0
>>> sum([1, 2] , 0)
3
當(dāng)然iterable為dictionary字典時(shí)也是可以的:
>>> sum({1: 'b', 7: 'a'})
8
>>> sum({1:'b', 7:'a'}, 9)
17
下面這些寫法目前是不被接受的(以list為例,其他iterable同理):
一、
>>> sum([1,2],[3,4])
Traceback (most recent call last):
File "<pyshell#115>", line 1, in <module>
sum([1,2],[3,4])
TypeError: can only concatenate list (not "int") to list
二、
>>> sum(4,[1,2,3])
Traceback (most recent call last):
File "<pyshell#116>", line 1, in <module>
sum(4,[1,2,3])
TypeError: 'int' object is not iterable
三、
>>> sum()
Traceback (most recent call last):
File "<pyshell#117>", line 1, in <module>
sum()
TypeError: sum expected at least 1 arguments, got 0
四、
>>> sum(,2)
SyntaxError: invalid syntax
五、
>>> sum(1,3)
Traceback (most recent call last):
File "<pyshell#112>", line 1, in <module>
sum(1,3)
TypeError: 'int' object is not iterable
附其官方解釋:
>>> help(sum)
Help on built-in function sum in module builtins:
sum(...)
sum(iterable[, start]) -> value
Return the sum of an iterable of numbers (NOT strings) plus the value
of parameter 'start' (which defaults to 0). When the iterable is
empty, return start.
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
sum是python中一個(gè)很實(shí)用的函數(shù),但是要注意它的使用,我第一次用的時(shí)候,就把它這樣用了:
s = sum(1,2,3)
結(jié)果就悲劇啦
其實(shí)sum()的參數(shù)是一個(gè)list
例如:
sum([1,2,3])
sum(range(1,11))
還有一個(gè)比較有意思的用法
a = range(1,11)
b = range(1,10)
c = sum([item for item in a if item in b])
print c
輸出:
45
| 1 |
- 4 回答
- 0 關(guān)注
- 976 瀏覽
添加回答
舉報(bào)





