python 编写一个函数calfilter,该函数可以接收任意个数的参数,返回一个元组,元组的第一个值为所有参数的平均值(保留两位小数),第二个值是元素个数,从第三个开始便是大于平均值的所有数。 从键盘输入一个list,输出包含平均数,元素个数,大于平均值的所有数组成的元组。
时间: 2024-10-13 10:08:35 浏览: 43
在Python中,我们可以创建一个名为 `calc_filter` 的函数,它接受不定数量的参数,并按照要求计算平均值、元素个数以及大于平均值的元素。首先,我们需要获取所有参数的总和,然后除以数量得到平均值。接下来,我们将遍历参数列表,判断每个元素是否大于平均值。以下是函数的实现:
```python
def calc_filter(*args):
if len(args) == 0: # 检查参数列表是否为空
return (None, 0, [])
# 计算平均值
average = sum(args) / len(args)
# 计算元素个数
element_count = len(args)
# 找出大于平均值的元素(忽略第一个平均值)
greater_than_average = [x for x in args[1:] if x > average]
return (average round(2), element_count, greater_than_average)
# 从键盘获取输入,先尝试转为list,如果失败则提示错误
try:
user_input = list(map(float, input("请输入一系列数字,用空格分隔: ").split()))
except ValueError:
print("输入的不是数值,请重新输入.")
else:
result = calc_filter(*user_input)
print(f"结果: ({result[0]}, {result[1]}, {result[2]})")
阅读全文