python的数据统计与处理

需求:
输入一个由逗号分隔的整数列表,完成以下操作:
计算最大值、最小值、平均值
输出去重后的升序列表

功能说明
最大值、最小值和平均值计算:
使用 Python 的内置函数 max 和 min。
平均值通过 sum 除以列表长度计算。

去重并升序:
使用集合 set 去重后转换回列表并排序。

输入处理:
将用户输入字符串通过 split 和 map(int, …) 转换为整数列表。

代码实现:

class Function:
    def __init__(self):
        self.num_list = []

    def calculate_max(self):
        return max(self.num_list)

    def calculate_min(self):
        return min(self.num_list)

    def calculate_avg(self):
        return sum(self.num_list) / len(self.num_list)

    def get_unique_sorted_list(self):
        return sorted(set(self.num_list))


if __name__ == '__main__':
    # 用户输入并转换为整数列表
    input_list = input("请输入一组由逗号分隔的整数,例如:1,2,3,4: ")
    num_list = list(map(int, input_list.split(',')))

    # 创建 Function 对象
    function = Function()
    function.num_list = num_list

    # 执行功能并输出结果
    print(f"最大值: {function.calculate_max()}")
    print(f"最小值: {function.calculate_min()}")
    print(f"平均值: {function.calculate_avg():.2f}")
    print(f"去重后的升序列表: {function.get_unique_sorted_list()}")

基于 class 类方式实现数据统计与处理功能:

功能说明
面向对象设计:

使用 NumberStats 类封装所有与数字统计相关的功能,每个统计操作为一个方法。
类在初始化时接收一个整数列表作为输入。

calculate_max:返回最大值。
calculate_min:返回最小值。
calculate_avg:计算并返回平均值。
get_unique_sorted_list:返回去重后的升序排列列表。

异常处理:
增加了 try-except 块,确保用户输入的数据格式正确,避免运行时错误。

代码实现:

class NumberStats:
    def __init__(self, num_list):
        """
        初始化时接收一个整数列表
        """
        self.num_list = num_list

    def calculate_max(self):
        """
        计算最大值
        """
        return max(self.num_list)

    def calculate_min(self):
        """
        计算最小值
        """
        return min(self.num_list)

    def calculate_avg(self):
        """
        计算平均值
        """
        return sum(self.num_list) / len(self.num_list)

    def get_unique_sorted_list(self):
        """
        获取去重后的升序列表
        """
        return sorted(set(self.num_list))


if __name__ == '__main__':
    # 用户输入并转换为整数列表
    input_list = input("请输入一组由逗号分隔的整数,例如:1,2,3,4: ")
    try:
        # 转换为整数列表
        num_list = list(map(int, input_list.split(',')))
        
        # 创建 NumberStats 对象
        stats = NumberStats(num_list)

        # 调用类的方法并输出结果
        print(f"最大值: {stats.calculate_max()}")
        print(f"最小值: {stats.calculate_min()}")
        print(f"平均值: {stats.calculate_avg():.2f}")
        print(f"去重后的升序列表: {stats.get_unique_sorted_list()}")

    except ValueError:
        print("输入数据有误,请确保输入的是逗号分隔的整数。")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琅中之嶹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值