Python函数sum()的作用及用法
Python内置函数sum()是一个功能强大的函数,主要用于对可迭代对象进行求和。它能够将一个迭代器中所有元素的值进行累加,并返回结果。
sum()函数最常见的用法就是对数字或含有数字的列表进行求和。如:
nums = [1, 2, 3, 4, 5] print(sum(nums))
输出结果为:15
sum()函数可以接受一个可迭代对象和一个可选的参数作为起始值来进行累加,其语法如下:
sum(iterable, start)
其中,iterable是可迭代对象,如元组、列表、集合、字典等,start是可选参数,表示累加器中的起始值。如果没有给出起始值,默认为0。
除了对数字列表进行求和之外,sum()函数还可以被用于对字符串或自定义类中的元素进行求和。比如:
words = ["apple", "banana", "orange"] print(sum(len(word) for word in words))
输出结果为:18
在上面的例子中,我们使用了生成器来计算列表words中所有字符串的长度和,然后使用sum()函数将计算结果累加并返回。
当使用sum()函数时,需要注意以下几点:
1. 可迭代对象中的元素必须是数值型或者可转化为数值型的值,否则会产生TypeError错误。
2. 如果start参数不是数值型,则会产生TypeError错误。
关于sum()函数的用法和语法我们已经讲解完毕,下面我们来看一些实际使用场景。
1. 求数字列表的平均值
如果我们有一个数字列表,想要求出它的平均值,那么我们可以先使用sum()函数求出所有元素的累加值,再除以列表长度即可,如下所示:
numbers = [1, 2, 3, 4, 5] avg = sum(numbers) / len(numbers) print(avg)
输出结果为:3
2. 计算一个班级的平均分和总分
假设我们有一个班级的成绩分别存放在一个列表中,要求计算出这个班级的平均分和总分,我们可以使用sum()函数来实现,如下所示:
scores = [85, 90, 92, 78, 88]
total = sum(scores)
average = total / len(scores)
print("total score is", total, "average score is", average)
输出结果为:total score is 433 average score is 86.6
3. 判断一个数字是否是其他数字的和
有时我们需要判断一个数字是否等于其他数字的和,可以使用sum()函数进行判断,如下所示:
numbers = [1, 2, 3, 4, 5] target = 9 print(target in set(sum(pair) for pair in itertools.combinations(numbers, 2)))
输出结果为:True
在上面的例子中,我们使用itertools模块的combinations函数来生成数字列表中所有可能的数字组合,然后使用sum()函数对每个数字组合进行求和。最后将所有求得的和存放在一个集合中,并使用in运算符判断目标数字是否在集合中。
总结
Python内置函数sum()是一个非常实用的函数,可用于求和、平均值等数值计算。它能够对可迭代对象中的元素进行累加,并返回结果。使用sum()函数能够减少代码量,提高开发效率。
