sum是python中一個(gè)很實(shí)用的函數(shù),但是要注意它的使用,我第一次用的時(shí)候,就把它這樣用了:
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、劍閣網(wǎng)站維護(hù)、網(wǎng)站推廣。
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
在開(kāi)發(fā)語(yǔ)言中,sum函數(shù)是求和函數(shù),用于求多個(gè)數(shù)據(jù)的和。而在python中,雖然也是求和函數(shù),但稍微有些差別,sum()傳入的參數(shù)得是可迭代對(duì)象(比如列表就是一個(gè)可迭代對(duì)象),返回這個(gè)被傳入可迭代對(duì)象內(nèi)參數(shù)的和。
相關(guān)推薦:《Python入門(mén)教程》
比如:
還可以給一個(gè)初始值,比如:
這樣得到的結(jié)果就是在20基礎(chǔ)之上再加上可迭代對(duì)象內(nèi)參數(shù)的和。
補(bǔ)充一句,sum函數(shù)既然只能傳入可迭代對(duì)象,那么整形數(shù)據(jù)是不行的,會(huì)報(bào)錯(cuò),比如:
1、Python中自帶的sum函數(shù)
在Python中自帶的函數(shù)中,它輸入的對(duì)象可以是一個(gè)可迭代對(duì)象,比方說(shuō)數(shù)組、列表,在使用的時(shí)候sum最多有兩個(gè)參數(shù),如果是一個(gè)參數(shù)的情況下,那么第一個(gè)參數(shù)是可迭代的,當(dāng)有兩個(gè)參數(shù)時(shí),第二個(gè)參數(shù)只能是個(gè)數(shù)。舉個(gè)例子:
sum([1,2,3],2) 運(yùn)行結(jié)果:8 三個(gè)元素相加之后再加2sum((1,2,3)) 運(yùn)行結(jié)果:6sum({1,2,3}) 運(yùn)行結(jié)果:6
2、numpy中的sum函數(shù)
這里的sum函數(shù)就是我們平時(shí)用的,同樣的可以是元組、數(shù)組、列表,在數(shù)組中,可以指定維度的相加,默認(rèn)情況下axis=none,sum將所有的元素相加,舉個(gè)例子:
1、當(dāng)sum沒(méi)有參數(shù)的時(shí)候,那么會(huì)將所有的元素相加;
2、如果axis參數(shù)等于0時(shí),則是按列相加;
舉個(gè)例子:
import numpy as np b=np.array([[3,7,6],[2,4,5]])print(b.sum(axis=0))
相當(dāng)于是:
[[3,7,6], [2,4,5]]
每一列對(duì)應(yīng)元素相加3+2,7+4,6+5
運(yùn)行結(jié)果輸出:
[5 11 11]
3、當(dāng)axis參數(shù)等于1時(shí),就是按行相加,例如:
import numpy as np b=np.array([[3,7,6],[2,4,5]])print(b.sum(axis=1))
運(yùn)行結(jié)果輸出為:
[16 11]
在上面的實(shí)例中,就相當(dāng)于是3+7+6,2+4+5,即每一行的元素分別相加。
關(guān)于如何使用Python中的sum函數(shù)?Python中sum函數(shù)的多種用法的內(nèi)容就分享到這里了,希望大家可以通過(guò)對(duì)這這篇文章的學(xué)習(xí),掌握到更多sum函數(shù)的使用方法。
sum(iterable[, start]) ,iterable為可迭代對(duì)象,如:
sum([ ], start) #iterable為list列表
sum(( ), start ) #iterable為tuple元組
......
最后的值 = 可迭代對(duì)象里面的數(shù)相加的值 + start的值
start默認(rèn)為0,如果不寫(xiě)就是0,為0時(shí)可以不寫(xiě)
即sum()的參數(shù)最多為兩個(gè),其中第一個(gè)必須為iterable,例如:
sum([1, 2, 3,], 4)
10
sum((1, 2), 3)
6
如果你寫(xiě)成sum([1,2,3]),start就是默認(rèn)值 0
sum([1, 2, 3])
6
sum([ ], 2)
2
sum(( ), )
sum([1, 2] , 0)
3
當(dāng)然iterable為dictionary字典時(shí)也是可以的:
sum({1: 'b', 7: 'a'})
8
sum({1:'b', 7:'a'}, 9)
17
下面這些寫(xiě)法目前是不被接受的(以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
附其官方解釋?zhuān)?/p>
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.
首先,定義一個(gè)數(shù)組,保存求和的所有整數(shù)。
輸入求和的整數(shù)個(gè)數(shù),保存在變量n中。
用for循環(huán),控制輸入所有的求和整數(shù)。
輸入所有的求和整數(shù),保存在數(shù)組中。
輸出所有求和的整數(shù),如下圖所示。
調(diào)用sum函數(shù),計(jì)算所有整數(shù)的和。
最后,輸出計(jì)算得到的所有整數(shù)和。
輸出結(jié)果如下:
推薦教程:python教程以上就是小編分享的關(guān)于python如何用sum函數(shù)求和的詳細(xì)內(nèi)容希望對(duì)大家有所幫助,更多有關(guān)python教程請(qǐng)關(guān)注環(huán)球青藤其它相關(guān)文章!