收藏 分销(赏)

python二级考试操作题9.doc

上传人:二*** 文档编号:4498144 上传时间:2024-09-25 格式:DOC 页数:15 大小:66KB 下载积分:5 金币
下载 相关 举报
python二级考试操作题9.doc_第1页
第1页 / 共15页
本文档共15页,全文阅读请下载到手机保存,查看更方便
资源描述
(word完整版)python二级考试操作题9 1.101   参照代码模板完善代码,实现下述功能。从键盘输入一个整数和一个字符,以逗号隔开,在屏幕上显示输出一条信息. 示例如下: 输入 10,@ 输出 @@@@@@@@@@ 10 @@@@@@@@@@   输入输出示例   输入 输出 示例 1 10,@ @@@@@@@@@@ 10 @@@@@@@@@@ 习题讲解 答案: a,x = input()。split(',’) # 请输入1个整数和1个符号,逗号隔开print(x*eval(a),a,x*eval(a)) 要点: 1. 输入两个值组成的字符串,要用split()分割开 2.同时赋值给两个变量 3。利用eval得到数值做运算,给字符做乘法,得到需要的格式 2。102   参照代码模板完善代码,实现下述功能。从键盘输入一个由 1 和 0 组成的二进制字符串 s,转换为八进制数输出显示在屏幕上,示例如下: 输入: 1100 输出: 转换成八进制数是:14   输入输出示例   输入 输出 示例 1 1100 14 习题讲解 答案: s = input() # 请输入一个由1和0组成的二进制数字串 d = 0 while s: d = d*2 + (ord(s[0]) —ord(’0')) s = s[1:]print("转换成八进制数是:{:o}"。format(d)) 要点: 1.print和format的格式用法,字符串的内置处理函数,切片 2.理解数据类型及其转换 3.103   参照代码模板完善代码,实现下述功能。文件 data。txt 文件中有多行数据,打开文件,读取数据,并将其转化为列表.统计读取的数据,计算每一行的总和、平均值,在屏幕上输出结果。 文件内容示例如下: Chinese: 80,Math:85,English:92, Physical: 81,Art:85,Chemical:88 屏幕输出结果示例如下: 总和是:511.0,平均值是:85.17   输入输出示例   输入 输出 示例 1 从文件 data.txt 中读取 总和是:511。0,平均值是:85。17 习题讲解 答案: fi = open("data.txt", 'r') for l in fi: l = l.split(’,') s = 0.0 n = len(l) for cours in l: items = cours.split(’:’) s += eval(items[1]) print(”总和是:{},平均值是:{:。2f}".format(s,s/n)) fi。close() 4.201   参照代码模板完善代码,实现下述功能,不得修改其它代码。使用 turtle 库的 turtle。circle() 函数和 turtle.seth() 函数绘制同心圆套圈,最小的圆圈半径为 10 像素,不同圆圈之间的半径差是 40 像素,效果如下图所示。    --—-—--------———————-——-——-——-----——-—-———-———------—-------——- 自动评阅说明   使用字符串形式输出 ____①____,____②____,____③____中应填代码即可以自动评阅得分 例如,如果代码为: # 代码模板 | # 你的代码import turtle | import turtle d = 0 | d = 0 for i in range(__1__): | for i in range(1): turtle。fd(__2__) | turtle。fd(100) turtle.__3__ | turtle.fd(100 + (i * 3)) turtle。seth(d) | turtle.seth(d) 则在提交代码页面输入: print('1', '100', 'fd(100 + (i * 3))’) 提交后即可以查看得分   注:如果有运算符,请在运算符两侧加上空格 习题讲解 答案: # 请在______处填写一行代码# 请不要修改其他代码 import turtle r = 10 dr = 40 head = 90 for i in range (4): turtle.pendown() turtle.circle(r) r += dr turtle.penup() turtle。seth(-head) turtle。fd(dr) turtle。seth(0) turtle。done() 要点: 1. 同心圆主要问题是要挪动画笔,用到 pendown 和 penup 2. 用循环来处理重画的个数 5。202   参照代码模板完善代码,实现下述功能。从键盘输入一个中文字符串变量 s,内部包含中文标点符号.   问题1:(8分)用 jieba 分词,计算字符串 s 中的中文词汇个数,不包括中文标点符号。显示输出分词后的结果,用"/ ”分隔,以及中文词汇个数。示例如下: 输入: 工业互联网”实施的方式是通过通信、控制和计算技术的交叉应用,建造一个信息物理系统,促进物理系统和数字系统的融合。 输出: 工业/ 互联网/实施/ 的/ 方式/是/ 通过/ 通信/控制/ 和/ 计算技术/的/ 交叉/ 应用/建造/ 一个/ 信息/物理/ 系统/ 促进/物理/ 系统/ 和/数字/ 系统/ 的/融合/ 中文词语数是:27   问题2:(7分)在问题1的基础上,统计分词后的词汇出现的次数,用字典结构保存。显示输出每个词汇出现的次数,以及出现次数最多的词汇.如果有多个词汇出现次数一样多,都要显示出来。示例如下: 继续输出: 控制: 1 物理: 2 通信: 1 交叉: 1 互联网: 1 和: 2 是: 1 计算技术: 1 一个: 1 的: 3 数字: 1 促进: 1 信息: 1 方式: 1 建造: 1 应用: 1 系统: 3 通过: 1 实施: 1 融合: 1 工业: 1 出现最多的词是(的 系统):3 次   输入输出示例   输入 输出 问题 1 “工业互联网"实施的方式是通过通信、控制和计算技术的交叉应用,建造一个信息物理系统,促进物理系统和数字系统的融合。 中文词语数是:27 问题2   控制: 1 物理: 2 通信: 1 交叉: 1 互联网: 1 和: 2 是: 1 计算技术: 1 一个: 1 的: 3 数字: 1 促进: 1 信息: 1 方式: 1 建造: 1 应用: 1 系统: 3 通过: 1 实施: 1 融合: 1 工业: 1 出现最多的词是(的 系统):3 次 习题讲解 答案: #请在。.。。。处填写多行表达式或语句#可以修改其他代码 import jieba # s = '“工业互联网”实施的方式是通过通信、控制和计算技术的交叉应用,建造一个信息物理系统,促进物理系统和数字系统的融合。’ s = input(”请输入一个中文字符串,包含逗号和句号:”) s = s.replace(',','').replace(’。',’')。replace(’、’,'').replace(’“','')。replace('”’,’') k=jieba.lcut(s) d1 = {} maxc = 0 wo = ’' for i in k: print(i, end= "/ ”) d1[i] = d1.get(i,0) + 1 print("\n中文词语数是:{}".format(len(k))) for key in d1: if maxc 〈 d1[key]: wo = key maxc = d1[key] elif maxc == d1[key]: wo += ' ' + key print("{}: {}”.format(key,d1[key])) print("出现最多的词是({}):{} 次”.format(wo, maxc)) 要点: 1。 用 jieba 分词处理词汇统计 2。 要处理掉输入的各种标点符号,用到replace() 3。 用字典保存各个词出现次数 4. 要遍历字典的键值对,找到最大的值,及其对应的键 6。301   一个人脸识别研究小组对若干名学生做了人脸识别的测试,将测试结果与被测试者的现场照片组合成文件名,写到了一个文件 dir_100。txt 中,每行是一个文件名的信息,示例如下: [’1709020621’, ’0']_116.jpg [’1709020621’]_115.jpg [’1770603107’, '1770603105', '0’, '0']_1273.jpg 文件名各部分含义如下: [‘识别出学号1’,‘ 识别出学号2’,…,‘0表示检测到人脸但未识别出人’]_照片的顺序编号。jpg 测试过程中,一个学生可能被抓拍到多张照片中,所以会在多个文件名中被识别,学号出现在多个文件名中;一张照片中,可能有多个人脸,但有些分辨率不够而识别不出来,文件名位置用‘0'代替学号. 使用字典和列表型变量进行数据分析,最终获取实际参加测试的学生人数和人均被测次数. (1)读入 dir_300。txt 文件的内容,处理每一行文件名信息。将文件名中的学号内容以列表形式保存,丢掉‘0’的字串;照片的顺序编号作为字典的关键字,学号列表作为字典的值。转换后,显示字典中的每行信息,示例如下: 116:1709020621 115:1709020621 117:1709020621 1273: 1770603107,1770603105   (2)将该字典中的学号提取出来,构造另一个字典,以学号作为字典的关键字,累计学号出现的次数,将累计值作为字典的值。格式示例如下: 1709020621:3 1770603107:1 1770603105:1 (3)累计字典中关键字的个数,即为实际参加测试的学生人数;累加每个关键字对应的值,即为所有学号测试次数;与实际测试人数之比,即为人均被测次数.将实际参加测试人数和人均被测次数显示输出在屏幕上,示例如下: 实际参加测试的人数是:1024 人均被测次数是:2.7   输入 输出 问题 1 从文件dir_50。txt读入 实际参加测试的人数是:1024 人均被测次数是:2.7   输入输出示例   自动评阅提示:输出最终结果即可,中间结果不需要输出 习题讲解 答案: #P301-1。py#请在。。.。。处填写多行表达式或语句#可以修改其他代码 picd = {} numd = {} fi = open(”dir_50.txt”,’r’) for l in fi: l=l。replace(’\n’,’’).split(’_')## print(l[1]) if l[0] != '' : lkey,lvalue = l[1][:—4],eval(l[0]) lval = [] for v in lvalue: if v != '0’: lval.append(v) if lval: lv= ',’。join(lval) print("{}:{}”。format( lkey,lv)) picd[lkey] = lv fi.close() idd = {} for key in picd: ids = picd[key]。split(',') for num in ids: idd[num] = idd。get(num,0) +1 #print(num,idd[num]) s = 0 for key in idd: s += int(idd[key]) # print(”{}:{}”.format(key, idd[key])) count = len(idd) print("实际参加测试的人数是:",count) print(”人均被测次数是:{:。1f}"。format(s/count)) 要点: 1。 这是一个实际问题,解决问题的方法有实际的推广意义.问题的关键是要完成数据提取,然后才是分析统计 2. 文件的读写,打开关闭是基础 3. 读入文件要进行字符串的处理,按行,分割成列表 3. 数据提取:先取得文件里的有效内容,转换成列表,利用列表的切片,提取出照片编号和学号,放到字典picd里 4. 第二步数据分析,需要先从字典里把学号提取出来,为了便于统计每个学号被测的次数,再建一个字典idd 5.  idd字典的键是学号,所以字典的len就是参加测试的人数 6。 为了计算平均测试次数,需要累计每个学号被测的次数,最后除以参加测试人数就得到结果
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服