python内置了一个sum函数,求和。
>>> sum([1,2,3,4,5]) # list
15
>>> sum((1,2,3,4,5)) # tuple
15
>>> sum({1,2,3,4,5}) # set
15
>>> sum('12345') # string is not acceptable
Traceback (most recent call last):
File "&ls;stdin>", line 1, in
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> sum(b'12345') # bytes string is OK
255
>>> sum(b'\x01\x02\x03\x04\x05')
15
sum的参数需要是一个可迭代序列,函数功能就是对序列中的所有原则相加求和。以上示例代码显示,string对象不能作为参数使用。
在看看sum函数内置的help是怎么说的:
>>> help(sum)
Help on built-in function sum in module builtins:
sum(iterable, start=0, /)
Return the sum of a 'start' value (default: 0) plus an iterable of numbers
When the iterable is empty, return the start value.
This function is intended specifically for use with numeric values and may
reject non-numeric types.
注意可选的第2个参数start。start不是index,不是说从输入序列的第几个元素开始相加,start是一个相加的起始值,相当于从start这个值开始相加。或者理解为,把序列中所有元素相加后,再加上start也可以。
>>> sum([1,2,3,4,5], -5)
10
>>> sum([1,2,3,4,5], -15)
0
>>> sum([1,2,3,4,5], 15)
30
使用sum函数的start参数,相当于多加一个参数。这个参数的存在,恐怕也仅仅是为了增加代码的可读性而已。
-- EOF --