Python求和函数sum()详解

一. 起因

1. 本以为Python sum()就是计算几个参数的和,也没看手册,直接使用。

s = sum(1, 2, 3, 4, 5, 6)
print(s)

悲剧是的报错

Traceback (most recent call last):
  File "D:/www/21yi.com/hello.py", line 1, in <module>
    s = sum(1, 2, 3, 4, 5, 6)
TypeError: sum() takes at most 2 arguments (6 given)

2. 本以为sum(iterable, /, start=0),start参数类似于切片,从第几位开始求和

悲剧的是,又错了

s = sum([1, 2, 3, 4, 5, 6], 3)
print(s) # =4+5+6

它竟然是iterable求和之后,再加上start

二. 解决

sum(iterable, /, start=0):对可迭代对象求和,iterable通常为数字。

定义

sum(iterable, /, start=0)

从 start 开始自左向右对 iterable 的项求和并返回总计值。

iterable 的项通常为数字,而 start 值则不允许为字符串。

返回值

从左至右计算可迭代对象的每一项的和,并返回这个求和值。如果定了start,则加上这个start值。

最后求得的值 = 可迭代对象的数的总和(字典:key值相加) + start的值(如果没写start的值,则默认为0)

s = sum([1, 2, 3, 4, 5], 5)  # in list +start
print(s) # 20 = 1+2+3+4+5+5

终于对了。

Python sum() 函数手册