您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 机器人包老师青少年软件编程等级考试-Python二级-模拟卷操作题10
青少年软件编程等级考试Python二级(实操试卷)模拟卷2试卷编号:867513试卷录入者:机器人包老师(玩得趣科教中心)试卷总分:100出卷时间:2020-2-1616:15答题时间:40分钟本试卷从考试酷examcoo网站导出,文件格式为mht,请用WORD/WPS打开,并另存为doc/docx格式后再使用1.101描述参照代码模板完善代码,实现下述功能。输入一个字符串,其中的字符由(英文)逗号隔开,编程将所有字符连成一个字符串,输出显示在屏幕上。输入输出示例输入输出示例11,2,3,4,512345习题讲解答案:ls=input(请输入一个字符串,由逗号隔开每个字符:).split(',')(1)print(''.join(ls))(2)要点:1.题目要求输入的字符用逗号隔开,所以,需要用到split(',')来从字符串里提取所输入的字符2.经过split()函数的字符串,返回的是列表3.字符串有个操作函数是str.join(ls),可以把列表里的各个元素,用str的内容连接起来。本题利用了空字符串‘’,来调用这个函数,因此,达到了所想要的效果:将带有逗号的字符串变换成了没有逗号的字符串。4.有一个不可忽视的地方是join()函数的括号里的参数是列表,如果忘了这一点,会犯错5.这个功能利用好了,可以拓展,解决其他的问题。2.102描述参照代码模板完善代码,实现下述功能。有一个列表studs如下:studs=[{'sid':'103','Chinese':90,'Math':95,'English':92},{'sid':'101','Chinese':80,'Math':85,'English':82},{'sid':'102','Chinese':70,'Math':75,'English':72}]将列表studs的数据内容提取出来,放到一个字典scores里,在屏幕上按学号从小到大的顺序显示输出scores的内容。内容示例如下:101:[85,82,80]102:[75,72,70]103:[95,92,90]输入输出示例输入输出示例1无101:[85,82,80]102:[75,72,70]103:[95,92,90]习题讲解答案:studs=[{'sid':'103','Chinese':90,'Math':95,'English':92},{'sid':'101','Chinese':80,'Math':85,'English':82},{'sid':'102','Chinese':70,'Math':75,'English':72}]scores={}forstudinstuds:sv=stud.items()v=[]foritinsv:ifit[0]=='sid':k=it[1]else:v.append(it[1])scores[k]=v#print(scores)so=list(scores.items())so.sort(key=lambdax:x[0],reverse=False)forlinso:print('{}:{}'.format(l[0],l[1]))studs=[{'sid':'103','Chinese':90,'Math':95,'English':92},{'sid':'101','Chinese':80,'Math':85,'English':82},{'sid':'102','Chinese':70,'Math':75,'English':72}]lit=[]foriinstuds:lst=[]a=i.get('sid')lst.append(i.get('Chinese'))lst.append(i.get('Math'))lst.append(i.get('English'))lst.sort(reverse=True)lat=[]lat.append(a+:)lat.append(str(lst))lit.append(lat)lit.sort()foriinlit:print(.join(i))要点:1.字典作为元素,定义在列表里,用列表的遍历就可以从中提取出来2.提取出来的元素直接就是字典,因此可以用items()直接获取,形成键值对对象集合sv;3.对键值对对象集合sv遍历,就可以以元组it的方式访问其中的每一对键值对,sv=stud.items(),是第一个空的答案;4.题目要求提取学生的学号,所以需要比较键it[0]是否是'sid',是则将学号it[1]提取出来作为新的字典scores的键k;不是则将成绩提取出来作为新字典scores的值v;5.由于课程是多门,因此新字典scores的值v需要以列表的方式,保存各门课程的成绩,所以在不是的情况下,新字典scores的值v是利用append(it[1])的方式,追加到列表的后面;6.对v做append操作,必须要事先定义v是一个空列表;因此需要在对每一条旧字典stud的键值对信息做处理的foritinsv:语句之前,用v=[]初始化v为一个空列表;7.经过对一条字典stud的处理,就形成一对k和v,所以接下来是给新字典scores添加一条键值对,scores[k]=v,是第二个空的答案8.经过对全部的studs列表里的各条字典处理完之后,新的scores字典就全部生成。9.题目要求按学号从小到大的顺序输出学号和成绩,所以需要对字典的键值对内容items()提取到列表so里,此处是第三个空的答案:so=list(scores.items())10.用Lambda函数进行排序。这个不在考试范围里,所以代码模板直接给出语句;11.对排好序的列表输出每组列表,这个直接给出语句,不再赘述。3.103描述参照代码模板完善代码,实现下述功能。从键盘输入一个用于填充的图符,一个字符串,一个要显示的字符串的总长度;编程将输入的字符串,居中输出显示在屏幕上,用填充图符补齐到输入的总长度。如果总长度处输入的不是正整数,则提示请输入一个正整数,并重新提示输入,直至输入正整数。输入:请输入填充符号:@请输入要显示的字符串:qq请输入字符串总长度:r请输入一个正整数请输入字符串总长度:3.4请输入一个正整数请输入字符串总长度:4输出:@qq@输入输出示例输入输出示例1@qq4@qq@习题讲解答案:#请在____处填写一行代码#请在…处填写多行代码#不要修改已给出代码a=input()#请输入填充符号c=input()#请输要显示的字符串flag=1whileflag:try:b=eval(input())#请输入字符串总长度except:flag=1print(请输入一个正整数)else:iftype(b)==intandb0:flag=0else:flag=1print(请输入一个正整数)print('{0:{1}^{2}}'.format(c,a,b))4.201描述参照代码模板完善代码,实现下述功能,不得修改其它代码。使用turtle库的turtle.fd()函数和turtle.seth()函数绘制螺旋状的正方形,正方形边长从1像素开始,第一条边从0度方向开始,效果如下图所示。---------------------------------------------------------------自动评阅说明使用字符串形式输出____①____,____②____,____③____中应填代码即可以自动评阅得分例如,如果代码为:#代码模板|#你的代码importturtle|importturtled=0|d=0foriinrange(__1__):|foriinrange(1):turtle.fd(__2__)|turtle.fd(100)d=__3__|d=(i+100)*100turtle.seth(d)|turtle.seth(d)则在提交代码页面输入:print('1','100','(i+100)*100')提交后即可以查看得分注:如果有运算符,请在运算符两侧加上空格习题讲解答案:importturtled=0k=1forjinrange(10):foriinrange(4):turtle.fd(k)d+=91turtle.seth(d)k+=2turtle.done()要点:1.降低了难度,让填写的都是最简单的5.202描述参照代码模板完善代码,实现下述功能,可以修改其它代码。附件文件question.txt中有一道Python选择题,第1行的第1个数据为题号,后续的4行是4个选项。示例内容如下:3.以下关于字典类型的描述,错误的是:A.字典类型中的数据可以进行分片和合并操作B.字典类型是一种无序的对象集合,通过键来存取C.字典类型可以在原来的变量上增加或缩短D.字典类型可以包含列表和其他数据类型,支持嵌套的字典读取其中的内容,提取题干和四个选项的内容,利用jieba分词并统计出现频率最高的3个词,其中要删除以下的常用字和符号“的,::可以是和中以下B”,作为该题目的主题标签,显示输出在屏幕上。输入输出示例输入输出示例1从文件question.txt中读取所有内容第3题的主题是:类型:5集合:2组合:2习题讲解答案:importjiebafi=open(question.txt,'r')con=''num=0forlinfi:l=l.replace('\n','').strip().split('.')#print(l)try:ft=eval(l[0])except:passelse:num=ftcon+=l[1]print('第{}题的主题是:'.format(num))conls=jieba.lcut(con)dict={}forwordinconls:dict[word]=dict.get(word,0)+1dictls=list(dict.items())dictls.sort(key=lambdax:x[1],reverse=True)k=0foritindictls:ifit[0]in'的,::可以是和中以下B':continueelse:ifk==3:breakelse:print('{}:{}'.format(it[0],it[1]))k+=1fi.close()要点:1.导入jieba库,使用lcut分词,返回列表conls2.打开文件,读文件,关闭文件3.按行从文件里读,每一行是一个字符串,用strip和split处理成列表,因为要识别题号,还要提取题目和选项的内容,所以要按照'.'分隔来提取,分别返回题号和选项号作为列表l的第0个字段,后面的内容是列表l的第一个字段;4.为了识别题号,要利用eval,并逆向利用try-except结构捕捉第一个字段是整数的字段,把题号提取出来放到num里面,把其他的内容都用字符串加法,拼成一个大字符串con5.给出第一句显示:print('第{}题的主题是:'.format(num))6.接下来处理con,提取整个题干的主题词:7.用jieba分词,然后用字典dict来保存没个词出现的次数。一种惯用法是forwordinconls:dict[word]=dict.get(word,0)+18.统计出来的词以及词频,需要排序找到最大三个词频,此时需要把字典的键值对items()提取出来形成列表dictls,并利用列表排序和lambda函数。得到排好序的dictls9.显示的时候,遍历字典的每个键,要避开那些没有意义的词,题目里给出了剔除列表,拿过来判断一下,如果是没用的词,就直接跳过,循环下一个,用continue;10.如果是有意义的词,题目要求显示三个最高词频的词,因为中间有跳过的词,不能直接只循环排序靠前的3个词。要对显示了的词做计数,计够三个,就中断循环,所以要用break;11.这里用了嵌套的分支结构,在第一个分支里是有意义的词,在第二个分支里是计数不到三个,才做显示输出的语句,显示完了,要把计数器k加一。12.程序最后记着关闭文件。
本文标题:机器人包老师青少年软件编程等级考试-Python二级-模拟卷操作题10
链接地址:https://www.777doc.com/doc-6296597 .html