利用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))
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注![ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=<Control-Key-;>
意思是按ctrl + ;是清屏。或者你可以设置成其它快捷键,注意不要和IDLE原本的快捷键冲突。
注意,此文件受系统保护,需要以管理员身份保存才能保存成功。
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