代码思想:
分别用四个函数来封装数值、平均值、标准差、中位数,然后调用输出
#基本统计值计算
import math
def getnums():
nums=[]#定义nums列表用于存放输入的数字
n=input("请输入数字(输入#停止输入):")
while n!='#':
nums.append(eval(n))#当输入的内容不是#时,将对应字符串转换为数字加入nums列表
n=input("请输入数字(输入#停止输入):")
return nums#返回最终输入的数字集
def avg(nums):
sum=0
for i in nums:
sum+=i
return sum/len(nums)#返回数据平均值
def std(nums,avg):
sum=0
for i in nums:
sum+=(i-avg)**2
return math.sqrt(sum/(len(nums)-1))#返回数据标准差
def mid(nums):
end=sorted(nums)
if len(nums)%2==0:
return (end[len(nums)//2]+end[len(nums)//2-1])/2#当输入数据总量为偶数时,返回中间两位数的和的平均值为中位数
else:
return end[len(nums)//2]#当输入数据总量为奇数时,返回中间那位数为中位数
m=getnums()
n=avg(m)
print("平均值为{},标准差为{:.2},中位数为{}".format(n,std(m,n),mid(m)))
注:请不要输入除数字和#以外的内容,否则会报错
效果图: