live long and prosper
python小小程序练习
编写函数,接收任意多个实数,返回一个元组,其中第一个元素为所有参数的平均值,其他元素为所有参数中大于平均值的实数。
先把问题的答案放出,待笔者稍后讲解:
def function(*number):
a=sum(number)/len(number)
b=filter(lambda num:num>a,number)
return (a,)+tuple(b)
print(function(23,45,67,23,45))
1、首先根据题意,需要函数能够接受任意实数,所以函数传入形参加上*,
->知识点:使其接收任意数量的形参
def function(*number):
2、sum()和len()函数
sum()可以求解所有参数的和,len()可以求解传入参数的个数,sum()/len()则可以求解平均值
a=sum(number)/len(number)
并且平均值列为元组的第一个元素
3、lambda表达式,filter()函数
lambda表达式筛出所有大于平均值的实数。
filter()函数
该函数用于过滤序列,将序列中的不符合条件的元组过滤掉。函数接受两个参数,第一个为过滤条件函数,第二个为传入的序列,在此例中:
过滤函数 | 传入序列 |
---|---|
lambda表达式 | number |
4、tuple()函数、元组
·tuple()可以将列表转换为元组。
·“+”可以连接序列
·元组中只有一个元素使需要加上“,”有标识
欢迎斧正