python的sum函数怎么用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的sum函数怎么用相关的知识,希望对你有一定的参考价值。

sum(iterable[, start]) ,iterable为可迭代对象,如:

sum([ ], start)  , #iterable为list列表。

sum(( ), start ) , #iterable为tuple元组。

最后的值=可迭代对应里面的数相加的值 + start的值

start默认为0,如果不写就是0,为0时可以不写,即sum()的参数最多为两个,其中第一个必须为iterable。

按照惯例,在开发语言中,sum函数是求和函数,求多个数据的和,而在python中,虽然也是求和函数,但稍微有些差别,sum()传入的参数得是可迭代对象(比如列表就是一个可迭代对象),返回这个被传入可迭代对象内参数的和。

比如:

参考技术A

sum(iterable[, start]) ,iterable为可迭代对象,如:

sum([ ], start)     #iterable为list列表

sum(( ), start )    #iterable为tuple元组

......

最后的值 = 可迭代对象里面的数相加的值 + start的值

start默认为0,如果不写就是0,为0时可以不写

即sum()的参数最多为两个,其中第一个必须为iterable,例如:

>>> sum([1, 2, 3,], 4)

10

>>> sum((1, 2), 3)

6

如果你写成sum([1,2,3]),start就是默认值 0 

>>> sum([1, 2, 3])

6

>>> sum([ ], 2)

2

>>> sum(( ), )

0

>>> sum([1, 2] , 0)

3

当然iterable为dictionary字典时也是可以的:

>>> 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.

参考技术B

按照惯例,在开发语言中,sum函数是求和函数,求多个数据的和

而在python中,虽然也是求和函数,但稍微有些差别,sum()传入的参数得是可迭代对象(比如列表就是一个可迭代对象),返回这个被传入可迭代对象内参数的和。比如:

还可以给一个初始值,比如:

这样得到的结果就是在20基础之上再加上可迭代对象内参数的和

补充一句,sum函数既然只能传入可迭代对象,那么整形数据是不行的,会报错,比如:

参考技术C

sum是python中一个很实用的函数,但是要注意它的使用,我第一次用的时候,就把它这样用了:

s = sum(1,2,3)

结果就悲剧啦

其实sum()的参数是一个list

例如:

sum([1,2,3])

sum(range(1,11))

还有一个比较有意思的用法

a = range(1,11)

b = range(1,10)

c =  sum([item for item in a if item in b])

print c

输出:

45


参考技术D sum([1,2,3,4])
, always use help when needed.

>>> help('sum')
Help on built-in function sum in module __builtin__:

sum(...)
sum(sequence, start=0) -> value

Returns the sum of a sequence of numbers (NOT strings) plus the value
of parameter 'start'. When the sequence is empty, returns start.

db2的strip函数怎么用?

db2的strip函数怎么用?
有sql如下,不太懂什么意思。(PS:只需要解释strip的语法,即strip怎么用即可)
select

'1'|| ' : '||
case
when sum(nvl(字段,0)) = 0 then '0'
else TRIM(REPLACE(strip(replace(char(decimal(round(sum(nvl(字段1,0))*1.000000/sum(字段2)*0.200,2),10,2)), '0.', '#'),B,'0'),'#','0.'))
end as test3
from 表名

strip跟trim类似,可以去掉2端指定的字符,
strip(string, b|l|t, char)
其中b=both,指去掉2端, l=leading,指去掉前导, t=trailing,指去掉后续
如 strip('009900', b, '0')就是去掉2端的0,结果为'99'
char可以没有,没有时指删除空白字符,跟trim/ltrim/rtrim类似
参考技术A   STRIP函数的语法如下:

  >>-STRIP--(---string --expression-- + ----------------------+---)-><
'-,--+--BOTH----+--+----+---' +--LEADING-+
+--L-------+
+--TRAILING+
'-T---------'
B:BOTH表示两头
L:LEADING表示去头
T:TRAILING表示去尾
strip-character:表示要截去的单个字符常量

  比如:
  db2 "select '#'||strip('00000999000',b,'0')||'#' from sysibm.sysdummy1"
1
-------------
#999#
1 record(s) selected.
db2 "select '#'||strip(' 999 ',t,' ')||'#' from sysibm.sysdummy1"
1
-------------

  # 999#
1 record(s) selected.
db2 "select '#'||strip(' 99 9 ',t,' ')||'#' from sysibm.sysdummy1"
1
-------------
# 99 9#
1 record(s) selected.
db2 "select '#'||strip('00990090000',l,'0')||'#' from sysibm.sysdummy1"
1
-------------
#990090000#
1 record(s) selected.
参考技术B STRIP 删除字符串开始和结尾的空白字符或其他指定的字符

以上是关于python的sum函数怎么用的主要内容,如果未能解决你的问题,请参考以下文章

python:用关键字def定义一个函数sum(a,b,c),要求输入a,b,c三个整数,返回三个数的和。

matlab怎么用?

python设计一个名为list_sum的函数,接收一个数字的列表,返回积累和,返回一个新的列表

Python基础 函数

如何让SQL语句中的聚集函数sum不忽略NULL值

深入理解Python reduce函数