用Python的idle求方差和中位数

img

利用IDLE求如图上面的题目,最好是用比较基础简短的,最好写出来这一步的目的或者是这一步做过之后呈现什么效果,本人完全什么都不明白QAQ

import random
import math

n = int(input("请输入一个正整数: "))
s = [random.randint(10, 50) for i in range(n)]
print("随机产生的列表为:", s)

avg = sum(s) / n
variance = sum([(x - avg) ** 2 for x in s]) / n
std_dev = math.sqrt(variance)

s.sort()
if n % 2 == 0:
    median = (s[n // 2 - 1] + s[n // 2]) / 2
else:
    median = s[n // 2]

print("均方差为: {:.2f},中位数为: {:.2f}".format(std_dev, median))
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7503396
  • 这篇博客也不错, 你可以看下Python自带的IDLE中最常用的三组快捷键
  • 除此之外, 这篇博客: Python IDLE 如何清屏中的 ,在此文件最下方加入以下代码,保存。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • [ClearWindow]
    enable=1
    enable_editor=0
    enable_shell=1
    [ClearWindow_cfgBindings]
    clear-window=<Control-Key-;>
    

    意思是按ctrl + ;是清屏。或者你可以设置成其它快捷键,注意不要和IDLE原本的快捷键冲突。

    注意,此文件受系统保护,需要以管理员身份保存才能保存成功。

  • 您还可以看一下 高琪老师的python人工智能第一季课程中的 开发环境介绍_交互模式的使用_IDLE介绍和使用小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    用Python的idle如何计算方差和中位数?

    计算中位数

    • 首先,输入一组数字,可以把数字集合保存在一个列表中;
    • 使用sort()函数对列表进行排序,然后判断列表长度是否为奇数,如果为奇数,则中位数即为中间位置的数值,否则中位数为中间两个位置的数字的平均值;
    • 使用if语句根据排序后列表的长度进行判断和计算,最后输出中位数。
    def calculate_median(list):
        list.sort()
        n = len(list)
        if n % 2 ==0:
            median1 = list[n//2]
            median2 = list[n//2-1]
            median = (median1 + median2)/2
        else:
            median = list[n//2]
        return median
    

    计算方差

    • 首先,计算这组数字的平均值;
    • 在计算方差之前,需要用每个数字减去平均值,得到每个数字的离差,然后将每个数字的离差进行平方,得到平方离差,最后对平方离差进行求和,再除以数字个数,得到方差。
    def calculate_variance(list):
        mean = sum(list) / len(list)
        variance = sum([((x - mean) ** 2) for x in list]) / len(list)
        return variance
    

    示例代码和解释:

    # 用Python的idle如何计算方差和中位数?
    
    import statistics
    
    def calculate_median(list):
        list.sort()
        n = len(list)
        if n % 2 ==0:
            median1 = list[n//2]
            median2 = list[n//2-1]
            median = (median1 + median2)/2
        else:
            median = list[n//2]
        return median
    
    def calculate_variance(list):
        mean = sum(list) / len(list)
        variance = sum([((x - mean) ** 2) for x in list]) / len(list)
        return variance
    
    # 测试
    input_list = [1,2,3,4,5,6,7,8,9]
    print("原始数据:",input_list)
    print("使用Python内置函数statistics计算中位数:",statistics.median(input_list)) #采用内置函数获得中位数
    print("使用自定义函数calculate_median计算中位数:",calculate_median(input_list)) #使用自定义函数计算中位数
    print("使用自定义函数calculate_variance计算方差:",calculate_variance(input_list)) #使用自定义函数计算方差
    

    解释: - 首先导入statistics模块,这个模块里有许多数学函数,包括计算中位数的函数median(); - 然后定义两个自定义函数calculate_median和calculate_variance来计算中位数和方差,输入参数为一个列表; - 最后,定义一个列表input_list,并将要进行计算的数字放入其中;输出原始数据以及通过使用Python内置函数statistics计算中位数等方法得到的中位数和方差。

    运行结果:

    原始数据: [1, 2, 3, 4, 5, 6, 7, 8, 9]
    使用Python内置函数statistics计算中位数: 5
    使用自定义函数calculate_median计算中位数: 5
    使用自定义函数calculate_variance计算方差: 6.666666666666667