educoder:实验十 字典

这篇具有很好参考价值的文章主要介绍了educoder:实验十 字典。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第1关:统计文档中作者作品数量

任务描述

本关任务:编写一个能计算文档《中学诗词.txt》中各位作者作品数量的程序。

遍历文档中每一行,提取作者的姓名,将其作为键加入到字典中,字典的值为作品数量。 然后将字典转换为二维列表,按作品数量的降序排列。

educoder:实验十 字典

相关知识 

为了完成本关任务,你需要掌握:1.字典的操作,2.字典转换为列表。

字典的操作

字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示 d = {key1 : value1, key2 : value2 } 建立空字典 d={} 向字典添加新内容的方法是增加新的键/值对 d["范仲淹"]=1 则d为{"范仲淹":1} 修改键值对的方法为 d["范仲淹"]=2 则d为{"范仲淹":2} d["范仲淹"]的值为2

d.get(key,default)键存在则返回相应值,否则返回默认值

字典转换为二维列表

lt = list(d.items()) 可将字典转换为二维列表, 二维列表的每项值为列表,列表的第一项为字典的键,第二项为字典的值

编程要求

根据提示,在右侧编辑器补充代码,计算并显示各位作者作品数量。

测试说明

平台会对你编写的代码进行测试:

educoder:实验十 字典


没有伞的孩子,只能学会努力奔跑。 开始你的任务吧,祝你成功!

代码:文章来源地址https://www.toymoban.com/news/detail-457942.html

f1=open("sy9//中学诗词.txt","r",encoding='utf-8')
sr={}
for x in f1:
    x=x.strip('\n').strip(' ')
    if ' 'in x and ','not in x and'。'not in x:
        xm=x[x.rfind(' ')+1:]
        sr[xm]=sr.get(xm,0)+1
lt=list(sr.items())
lt.sort(key=lambda x:x[1],reverse=True)
for i in lt:
    print(i[0],i[1])
f1.close()

 第2关:候选人票数统计

任务描述

本关任务:编写一个能统计候选人票数的小程序。

多人对若干个候选人投票。 循环输入候选人的名字,将其存入到列表tp中,直到输入end为止 计算每个候选人的得票数,按从高到低显示名次、姓名、票数

例如输入

li

zhang

wang

li

li

zhang

zhang

wang

li

li

end

显示结果为

第1名姓名li票数5

第2名姓名zhang票数3

第3名姓名wang票数2


开始你的任务吧,祝你成功!

代码:

tp,items=[],[]
x=input("")
while(x!="end"):
    tp.append(x)
    x=input("")
name=set()
for a in tp:
    name.add(a)
namelist=list(name)
for a in namelist:
    p=0
    for b in tp:
        if a==b:
            p+=1
    items.append([a,p])
items.sort(key=lambda x:x[1],reverse=True)
for i in range(len(items)):
    print("第{}名姓名{}票数{}".format(i+1,items[i][0],items[i][1]))

第3关:会员会费计算

任务描述

本关任务:编写一个能计算会员会费的小程序。

某网站可以充值影视会员和体育会员。 影视会员为影视黄金会员(会费199)和影视星钻会员(会费399) 体育会员为体育大众会员(会费98)和体育专业会员(会费198) 会员名单.txt文件如下所示,计算并显示每人的姓名和会费

educoder:实验十 字典

 测试说明

平台会对你编写的代码进行测试:

educoder:实验十 字典

 盛年不重来,一日难再晨。及时宜自勉,岁月不待人。 开始你的任务吧,祝你成功!

代码:

f1=open("sy9//会员名单.txt","r",encoding="utf8")
d={'影视黄金会员':199,'影视星钻会员':399,'体育大众会员':98,'体育专业会员':198}
for line in f1:
    name,hy1,hy2=line.strip('\n').split(',')
    e=d.get(hy1,0)+d.get(hy2,0)
    print(name,e)
f1.close()

第4关:职工工资计算

任务描述

编写一个计算职工工资的小程序

列表zg中存储了员工的姓名、基本工资、分公司和部门信息 格式如下(逗号分隔)

mike,9200,北京,销售部

各分公司的津贴标准如下:北京5000上海4000广州3000)

各部门的津贴标准如下:销售部2000经理室3000财会部1000

计算每位员工的工资:基本工资加上分公司津贴和部门津贴

提示:可以分别用两个字典存放津贴。

将每位员工的姓名和工资存放到列表yfgz中 再按工资的降序排列,并显示出来

每行的显示格式为 姓名harry工资16700

例如,输入mike,9200,北京,销售部

harry,8700,北京,经理室

henry,4300,北京,财会部

tony,6600,上海,销售部

tom,7400,上海,财会部

rachel,5200,上海,财会部

jerry,6500,广州,销售部

andy,7600,广州,销售部

rose,6700,北京,财会部

结果为 姓名harry工资16700

姓名mike工资16200

姓名rose工资12700

姓名tony工资12600

姓名andy工资12600

姓名tom工资12400

姓名jerry工资11500

姓名henry工资10300

姓名rachel工资10200


开始你的任务吧,祝你成功!

代码:

zg,yfgz=[],[]
xx=input("")
while(xx!="end"):
    sj=xx.split(',')
    zg.append([sj[0],eval(sj[1]),sj[2],sj[3]])
    xx=input("")
jt={'北京':5000,'上海':4000,'广州':3000,'销售部':2000,'经理室':3000,'财会部':1000}
for i in zg:
    a,b,c,d=i[0],i[1],i[2],i[3]
    y=jt.get(c,0)+jt.get(d,0)+b
    yfgz.append([a,y])
yfgz.sort(key=lambda x:x[1],reverse=True)
for x in yfgz:
    print("姓名"+x[0]+"工资"+str(x[1])) 

第5关:文件币种兑换计算

任务描述

本关任务:编写一个根据汇率兑换文件的汇率进行外币兑换人民币的小程序。

sy9文件夹下《汇率兑换.txt》文件如下图所示 每行显示1外币名称(外币编码)=汇率人民币

educoder:实验十 字典

根据这些信息建立一个字典,键为外币编码,值为汇率(数值) 例如,第一项为{"HKD":0.9036} 循环输入需要兑换的外币代码和金额 例如hkd1000(可以是小写或大写代码) 显示转换后的人民币金额 人民币903.60(保留两位小数) 如果输入的外币代码错误或数字不对,给出相应的提示 循环输入,直到输入0为止

测试说明

平台会对你编写的代码进行测试:

测试输入: 请输入货币USK1000

预期输出: 外币代码错误

测试输入: HKD2UY

预期输出: 数字错误

测试输入: USD200 hkd300 eur500 0

预期输出: 人民币1353.58 人民币271.08 人民币3946.05


纸上得来终觉浅 绝知此事要躬行 开始你的任务吧,祝你成功!

代码:

f1=open("sy9//汇率兑换.txt","r",encoding="utf-8")
bzzd={}
for line in f1:
    line=line.strip('\n')
    dh=line[line.find('(')+1:line.find('(')+4]
    hl=eval(line[line.find('= ')+2:line.find(' 人民币')])
    bzzd[dh]=hl
while True:
    x=input()
    if x=='0':
        break
    dh=x[:3].upper()
    sl=x[3:]
    if dh not in bzzd.keys():
        print('币种错误')
    elif sl.isdigit()==False:
        print('数字错误')
    else:
        sl=eval(sl)
        hl=bzzd.get(dh,0)
        e=hl*sl
        print('人民币{:.2f}'.format(e))
f1.close()

 第6关:饮品销售计算

任务描述

本关任务:编写一个计算购买饮品金额的小程序。

编程要求

nc.csv文件中存放某奶茶店的各饮品的编号、名称和价格如下所示

educoder:实验十 字典

 编写程序,首先显示所有饮品的序号、名称和价格。

循环输入饮品的编号和数量,直到输入编号为00。系统输出总计的金额。 若输入饮品的编号错误,系统会显示编码错误,但仍可继续输入。

educoder:实验十 字典

测试说明

平台会对你编写的代码进行测试:

测试输入:

请选择饮品05

请输入数量1

请选择饮品09

请输入数量2

请选择饮品99

请选择饮品03

请输入数量2

输出

编码错误

应付80元

代码:

f1=open("sy9//nc.csv","r",encoding="utf8")
goods={}
for line in f1.readlines():
    x=line.strip().split(',')
    print(f'编号{x[0]}饮品{x[1]}价格{x[2]}')
    goods[x[0]]=eval(x[2])
y,je=input("请选择饮品"),0
while y!='00':
    if y in goods.keys():
        num=eval(input('请输入数量'))
        je+=num*goods[y]
    else:
        print('编码错误')
    y=input('请选择饮品')
print("应付{}元".format(je))

第7关:统计文件词语的词频

任务描述

本关任务:编写一个能统计文档中词语词频小程序。 宋词文件如下所示:

educoder:实验十 字典

统计文件中词频最高的15个词语(除了词牌名和作者)

注意:标题行的空格是全角空格" "(可复制此空格) 由于有一个词牌名为东风第一枝,需要将文件中的词牌名删除。(否则会多一个东风)

相关知识

为了完成本关任务,你需要掌握:jieba库分词

jieba库分词

jieba是Python中一个重要的第三方中文分词函数库 Jieba库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组。 jieba.lcut(s) 精确模式对字符串s分词,产生一个列表

测试说明

平台会对你编写的代码进行测试:

输出:

 educoder:实验十 字典


海纳百川有容乃大;壁立千仞无欲则刚。 开始你的任务吧,祝你成功!

代码:

import jieba
jieba.setLogLevel(jieba.logging.INFO)
f1= open("sy9//宋词.txt", "r")
txt,pc=f1.read(),set()
f1.seek(0,0)
for line in f1:
    if ' ' in line and ','not in line and','not in line and '。'not in line:
        a,b=line.split(' ')
        pc.add(a)
        pc.add(b)
for ch in ',.?!,。?!':
    txt=txt.replace(ch,' ')
words,counts=jieba.lcut(txt),{}
pc=pc|{'吴文英','姜夔'}
for word in words:
    if len(word)>1 and word not in pc:
        counts[word]=counts.get(word,0)+1
counts['东风']=counts.get('东风',0)-1
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(15):
    print("{}{}".format(items[i][0],items[i][1]))

第8关:宋词文件词云图片

任务描述

本关任务:根据宋词文件生成一个词云图片文件,存放在sy9文件夹的pict文件夹下的sc1.png

要求图片宽1000高700背景颜色白色最多300个词

注意:字体使用sy9文件夹下的simhei.ttf字体文件

educoder:实验十 字典

相关知识

为了完成本关任务,你需要掌握:生成词云图片

生成词云图片

wordcloud库概述

wordcloud是python的一个三方库,称为词云也叫做文字云,是根据文本中的词频,对内容进行可视化的汇总.

wordcloud.WordCloud(参数)

font_path : string  #字体路径,需要展现什么字体就把该字体路径+后缀名写上,

如:font_path = 'sy9//simhei.ttf’

width : int (default=400) #输出的画布宽度,默认为400像素

height : int (default=200) #输出的画布高度,默认为200像素

background_color : color value (default=”black”) #背景颜色,如background_color='white',背景颜色为白色 max_words : number (default=200) #要显示的词的最大个数


不论你在什么时候开始,重要的是开始之后就不要停止。 开始你的任务吧,祝你成功!

代码:

import jieba
import wordcloud
f1= open("sy9//宋词.txt", "r")
txt,pc=f1.read(),set()
f1.seek(0,0)
for line in f1:
    if " " in line:
        cp=line[:line.find(" ")]
        pc.add(cp)
        xm=line[line.find(" ")+1:].strip("\n")
        pc.add(xm)
f1.close()
for i in pc:
    txt=txt.replace(i,"")
counts,words= {},jieba.lcut(txt)
for word in words:
    if len(word)>1 :
        counts[word] = counts.get(word,0) + 1
w=wordcloud.WordCloud(font_path="sy9//simhei.ttf",background_color='white',max_words=300,width=1000,height=700)
w.generate_from_frequencies(counts)
w.to_file("sy9//pict//sc1.png")

到了这里,关于educoder:实验十 字典的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【git】个人代码统计数量

    1.查看git上的个人代码量 修改名称为自己的名称 2.统计某段时间个人的代码量 时间段修改为自己需要查看的时间段,author修改为自己的名称 3.统计某个时间段所有人的代码量 4.统计每个人的增删行数 5.查看仓库提交者排名前5 6.参数说明

    2024年02月05日
    浏览(29)
  • linux统计目录文件数量

    1、当前文件夹及子文件夹的数量:         ls -lR | grep \\\"^d\\\" | wc -l 2、当前文件及子目录文件夹的数量:         ls -lR | grep \\\"^-\\\" | wc -l 3、当前目录某文件的数量:         find . -name filename | wc -l 4、当前目录下所有目录文件的list及数量:         find . -name \\\"*\\\" list.txt     

    2024年02月08日
    浏览(33)
  • Educode--机器学习基础模型与算法测试闯关实验

    # -*- coding: utf-8 -*- \\\'\\\'\\\' 油气藏的储量密度Y与生油门限以下平均地温梯度X1、 生油门限以下总有机碳百分比X2、生油岩体积与沉积岩体积百分比X3、砂泥岩厚度百分比X4、 有机转化率X5有关,数据文件为“1.xlsx”,字段如下: 样本ID    X1    X2    X3    X4    X5    Y

    2024年02月06日
    浏览(30)
  • ES统计分组后的分组数量

    工作中遇到需要统计分组数量的查询,记录一下 ps: 按区域分组, 统计有几个区域 结果

    2024年02月07日
    浏览(38)
  • Linux 统计文件数量:多种方法全面掌握

    你是否想过在 Linux 系统中如何快速地统计某个目录下文件的数量?作为 Linux 用户,这是一个很常见的需求。无论是进行系统维护,还是管理文件,我们都需要掌握这个技能。在本文中,我们将向你介绍多种不同的方法来实现这个目标。 统计目录中的文件数量 统计目录中文件

    2024年02月16日
    浏览(35)
  • Linux 统计目录下文件数量的方法

    1、统计当前目录下文件的个数(不包括目录) 2、统计当前目录下文件的个数(包括子目录) 3、查看某目录下文件夹(目录)的个数(包括子目录) 4、统计当前文件夹下叫某某的文件的数量 5、统计当前文件夹下指定类型的文件的数量 例如这里需要找 js 文件的数量:

    2024年02月13日
    浏览(39)
  • Linux中文件大小查看和数量统计

    在 Linux 中,有多种命令可以查看磁盘分区情况,其中常用的命令如下: 命令 说明 lsblk 该命令用于显示所有块设备,包括磁盘和它们的分区。执行该命令后,会列出所有磁盘的设备名、磁盘大小、分区情况等信息 df -h 该命令用于查看所有已经挂载的文件系统的使用情况。执

    2024年02月16日
    浏览(34)
  • 头歌Educoder实验:C++ 面向对象 - 类的继承与派生

    第1关:公有继承 —— 学生信息类 任务描述 本关任务:采用公有继承设计学生信息类。 相关知识 继承 继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一。简单的说,继承是指一个对象直接使用另一对象的属性和方法。 C++ 中的继承关系就好比现实生

    2024年02月04日
    浏览(108)
  • Elasticsearch 查询和聚合查询:基本语法和统计数量

    摘要:Elasticsearch是一个强大的分布式搜索和分析引擎,提供了丰富的查询和聚合功能。本文将介绍Elasticsearch的基本查询语法,包括预发查询和聚合查询,以及如何使用聚合功能统计数量。 Elasticsearch是一种开源的分布式搜索和分析引擎,广泛应用于各种场景,包括日志分析、

    2024年02月11日
    浏览(37)
  • 统计XML标注文件中各标注类别的标签数量

            目标检测任务重,担心数据集中各标签类别不均衡,想统计XML标注文件中各标注类别的标签数量,可以使用以下脚本:          

    2024年02月12日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包