Python20220922-(第六周)-基本统计+字典

====================基本统计值====================

总个数: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)    #{}

出发,永远是最有意义的事,去做就是了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灬小杰

别人都在努力,你为什么不可以!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值