====================基本统计值====================
总个数:len()
求和:for....in
平均值:求和/总个数
方差:各数据与平均数差的平方的和的平均数
中位数:排序,奇数找中的一个,偶数找中间的两个求平均值
基本统计值计算
1,首先获取用户不定长度的输入
def getNum(): #定义函数:函数名 getNum 无传参 使用: getNum()
nums = [] #定义一个空列表,用来存储用户循环输入的信息
iNumStr = input('请输入数字(回车退出):') #初始输入和显示,赋值给到iNumStr
while iNumStr !='': #定义循环和循环条件
nums.append(eval(iNumStr)) #将用户输入的值存储到nums列表中
iNumStr = input('请输入数字(回车退出):') #继续获取用户输入
return nums #返回存储的信息
2,计算平局值
def mean(numbers): #定义计算平均值的函数
s = 0.0 #设置局部变量s
for num in numbers: #for循环传入的值
s = s + num #循环求和值赋值给s
return s / len(numbers) #返回平均值
3,计算方差
def dev(numbers,mean): #定义方差函数,入参:用户输入值和平均值
sdev = 0.0 #定义变量
for num in numbers: #循环用户输入值
sdev = sdev + (num - mean)**2 #用户输入值减去平均值的值的2次方的值求和
return pow(sdev / (len(numbers)-1),0.5) #返回方差
4,计算中位数
def median(numbers): #定义中位数的函数
print (numbers) #打印一下
numbers=sorted(numbers) #对numbers进行排序操作
print (numbers) #打印一下
size = len(numbers) #获取入参的长度或者数量
if size % 2 == 0: #取模,看是否能除尽
med = (numbers[size//2-1] + numbers[size//2])/2 #能除尽找出中间的两个求平均值
else:
med = numbers[size//2] #不能除尽,直接找到最中间的一个
return med #返回结果值
5,最后输出
n = getNum()
m = mean(n)
print ('平均值:{},方差:{:.2},中位数:{}.'.format(m,dev(n,m),median(n)))
请输入数字(回车退出):1
请输入数字(回车退出):2
请输入数字(回车退出):3
请输入数字(回车退出):4
请输入数字(回车退出):6
请输入数字(回车退出):7
请输入数字(回车退出):5
请输入数字(回车退出):
[1, 2, 3, 4, 6, 7, 5]
[1, 2, 3, 4, 5, 6, 7]
平均值:4.0,方差:2.2,中位数:4.
===============================字典=========================
字典类型定义
理解‘映射'
映射是一种键(索引)和值(数据)的对应
键值对:键是数据索引的扩展
字典是键值对的集合,键值对之间无序
采用大括号{}和dict()船舰,键值对用冒号:表示
{<键1>:<值1>,<键2>:<值2>,<键3>:<值3>,<键4>:<值4>}
在字典变量中,通过键获得值
<字典变量> = {<键1>:<值1>,<键2>:<值2>,<键3>:<值3>,<键4>:<值4>}
<值> = <字典变量>[<键>]
<字典变量>[<键>] =<值>
d = {'中国':'北京','美国':'华盛顿','法国':'巴黎'}
print (d)
print(d['中国'])
print(type(d)) #返回变量d的类型
字典函数操作和方法
del d[k] 删除字典d中键k对应的数据值
k in d 判断k是否在字典d中,如果在返回True,否则False
d.keys() 返回字典d中所有的键信息
d.values() 返回字典d中所有的值信息
d.items() 返回字典d中所有的键值对信息
d.get(k,<default>) 键k存在则返回相应值,不在则返回<default>值
d.pop(k,<default) 键k存在则取出相应值,不在则返回<default>值
d.popitem() 随机从字典d中取一个键值对,以元组形式返回
d.clear() 删除所有的键值对
len(d) 用来返回字典d中元素的个数
d = {'中国':'北京','美国':'华盛顿','法国':'巴黎'}
print (d)
print(d['中国'])
print(type(d)) #返回变量d的类型
del d['法国']
#del d['俄罗斯']#如果删除的信息没有,会提示:KeyError: '俄罗斯'
c = '中国' in d #测试是否有中国
print (c) #输出Ture
for i in d.keys(): #循环打印d的键
print (i)
for i in d.values(): #循环打印d的值
print (i)
for i in d.items(): #循环打印d的键and值
print (i)
print (d.get('中国','俄罗斯')) #北京
print (d.get('俄罗斯','中国')) #中国
print (d) #{'中国': '北京', '美国': '华盛顿'}
print (d.pop('中国','俄罗斯'))#北京
print (d.pop('俄罗斯','中国'))#中国
print (d) #{'美国': '华盛顿'}
c = {'中国':'北京','美国':'华盛顿','法国':'巴黎'}
print(c.popitem()) #('法国', '巴黎')
print (len(c)) #2
c.clear() #清楚全部
print (c) #{}