【Python】第8次作业:基本统计值计算,数据去重 Data De-duplication,利用字典统计字符个数

【Python】第8次作业:基本统计值计算,数据去重 Data De-duplication,利用字典统计字符个数

1、基本统计值计算

题目:要求从键盘输入若干个数字,利用函数是实现求个数、总和、平均值、方差和中位值的计算。

from math import sqrt
print("请输入数字(Enter确认/两次Enter退出),且至少需要输入两个数字。")

# 从键盘获取数字
def getNum():
    nums = []
    iNumStr = input()
    while iNumStr != "":
        nums.append(eval(iNumStr))
        iNumStr = input()
    return nums

# 求输入数据的个数
def count(numbers):
    l = len(numbers)
    return l
#求和
def summation(numbers):
    s = 0.0
    for num in numbers:
        s = s + num
    return s

# 计算平均值
def mean(numbers):
    s = 0
    for num in numbers:
        s = s + num
    return s/len(numbers)

# 计算方差
def dev(numbers, mean):
    sdev = 0.0
    for num in numbers:
        sdev = sdev + (num-mean)**2
    return sqrt(sdev/(len(numbers)-1))

# 计算中位数
def median(numbers):
    sorted(numbers)
    size = len(numbers)
    if size % 2 ==0:
        med = (numbers[size//2-1] + numbers[size//2])/2
    else:
        med = numbers[size//2]
    return med

n = getNum()
m = mean(n)
z = summation(n)
print("个数:{}, 和:{}, 平均值:{}, 方差:{:.2}, 中位数:{}.".format(count(n),z,m,dev(n,m),median(n)))

2、 数据去重 Data De-duplication

题目:要求利用集合数据类型没有重复的特性,实现对两个列表的数据去重。考虑生成两个列表list1和list2,其中list1为1到20的整数,list2为-20到20的偶数。

list1=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]
list2=[-20,-18,-16,-14,-12,-10,-8,-6,-4,-2,0,2,4,6,8,10,12,14,16,18]
a=list1+list2
list3=list(set(a))
print(list3)

3、利用字典统计字符个数

题目:

1)编写程序,用户输入一个字符串,以回车结束,利用字典统计其中字母和数字出现的次数(回车符代表结束)。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

2)输入格式是一个以回车结束的字符串,例如输入abc1ab,输出{‘a’: 2, ‘b’: 2, ‘c’: 1, ‘1’: 1}。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

3)输入代码并提交解答。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬注意:提交代码时请删除input()函数中的参数,否则会出现错误。

#统计字符个数
str=str(input())
resoult={}
for i in str:
    resoult[i]=str.count(i)
print(resoult)
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值