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()传入的参数得是可迭代对象(比如列表就是一个可迭代对象),返回这个被传入可迭代对象内参数的和。
比如:
参考技术Asum(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函数既然只能传入可迭代对象,那么整形数据是不行的,会报错,比如:
参考技术Csum是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(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三个整数,返回三个数的和。