zoukankan      html  css  js  c++  java
  • 基本统计值计算

    “基本统计值计算” 问题分析

    1.1 问题分析

    基本统计值
    • 需求:给出一组数,对它们有一个概要理解
    总个数,求和,平均值,方差,中位数
    • 总个数(len)
    • 求和:for ... in
    • 平均值:求和/总个数
    • 方差:各数据与平均数差的平方的和的平均数
    • 中位数:排序然后 奇数找中间1个,偶数找中间2个取平均

    二 “基本统计值计算的实例讲解”

    • 获取多数据输入
    • 通过函数分隔功能
    def get_nums():
        """获取数据"""
        nums = []
        num = input('请输入数字:').strip()
        while num != '':
            nums.append(num)
            num = input('请输入数字:').strip()
        return nums
     
     
    def get_len(nums):
        """获取长度"""
        count = 0
        for num in nums:
            count += 1
        return count
    # nums = get_num()
    # print(get_len(nums))
     
     
    def get_add(nums):
        """求和"""
        sum = 0
        for num in nums:
            sum += eval(num)
        return sum
     
    # nums = get_num()
    # print(get_add(nums))
     
    def get_mean(nums):
        """求平均数"""
        sum = 0
        for num in nums:
            sum += eval(num)
        mean = sum/get_len(nums)
        return mean
     
    # nums = get_nums()
    # print(get_mean(nums))
     
    def get_var(nums,mean):
        """求方差"""
        sum = 0
        for num in nums:
            sum += (mean-eval(num))**2
        var =   sum / get_len(nums)
        return var
     
    # nums = get_nums()
    # print(get_var(nums,get_mean(nums)))
     
    def get_median(nums):
        """求中位数"""
        nums_sort = sorted(nums)
        size = get_len(nums)
        if size % 2 == 0:
            med = (eval(nums_sort[size // 2 - 1]) + eval(nums_sort[size // 2])) / 2
        else:
            med = eval(nums_sort[size//2])
        return med
    nums = get_nums()
    print(get_median(nums))
     
    优化版的统计值计算
    def get_nums():
        """获取数据"""
        nums = []
        num = input('请输入数字:').strip()
        while num != '':
            nums.append(num)
            num = input('请输入数字:').strip()
        return nums
     
     
    def get_len(nums):
        """获取长度"""
        count = 0
        for num in nums:
            count += 1
        return count
    # nums = get_num()
    # print(get_len(nums))
     
     
    def get_add(nums):
        """求和"""
        sum = 0
        for num in nums:
            sum += eval(num)
        return sum
     
    # nums = get_num()
    # print(get_add(nums))
     
    def get_mean(nums):
        """求平均数"""
        sum = 0
        for num in nums:
            sum += eval(num)
        mean = sum/get_len(nums)
        return mean
     
    # nums = get_nums()
    # print(get_mean(nums))
     
    def get_var(nums,mean):
        """求方差"""
        sum = 0
        for num in nums:
            sum += (mean-eval(num))**2
        var =   sum / get_len(nums)
        return var
     
    # nums = get_nums()
    # print(get_var(nums,get_mean(nums)))
     
    def get_median(nums):
        """求中位数"""
        nums_sort = sorted(nums)
        size = get_len(nums)
        if size % 2 == 0:
            med = (eval(nums_sort[size // 2 - 1]) + eval(nums_sort[size // 2])) / 2
        else:
            med = eval(nums_sort[size//2])
        return med
    # nums = get_nums()
    # print(get_median(nums))
     
    def run():
        nums = get_nums()
        l1 = ['长度','和','平均值','方差','中位数']
        while True:
            print("欢迎来到数学计算器".center(20,"-"))
            print("""
            1.求长度
            2.求和
            3.求平均值
            4.求方差
            5.求中位数
            6:退出程序
            """)
            choice = input("请输入你的需求:").strip()
            result = 0
            if choice == '1':
                result = get_len(nums)
            elif choice == '2':
                result = get_add(nums)
            elif choice == '3':
                result = get_mean(nums)
            elif choice == '4':
                result = get_var(nums,get_mean(nums))
            elif choice == '5':
                result = get_median(nums)
            elif choice == '6':
                return
            else:
                print('输入格式有误')
                print(result)
            print(f"{l1[eval(choice) -1]}:{result}")
     
    run()
     
  • 相关阅读:
    C#中的int、long、float、double等类型都占多少个字节的内存
    Bit 存储操作代码碎片
    unity文件写入与读取
    unity调用系统剪切板功能
    LayerMask小结
    NGUI中获取鼠标在控件内部坐标
    【Unity技巧】Unity中的优化技术
    工程源码目录
    Unity3D_NGUI_性能优化实践_CPU卡顿
    Unity3d:UI面板管理整合进ToLua
  • 原文地址:https://www.cnblogs.com/everuse/p/11740586.html
Copyright © 2011-2022 走看看