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()
     
  • 相关阅读:
    路径专题
    java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.lang.Integer
    DER input, Integer tag error的异常处理
    myeclipse,eclipse控制台输出乱码问题
    大话设计模式之简单工厂模式
    Maven安装与配置
    IDEA: 遇到问题Error during artifact deployment. See server log for details.详解
    IntelliJ IDEA 中 右键新建时,选项没有Java class的解决方法和具体解释
    微信内置浏览器和小程序的 User Agent 区别及判断方法
    WAMP 403 Forbidden禁止访问
  • 原文地址:https://www.cnblogs.com/everuse/p/11740586.html
Copyright © 2011-2022 走看看