ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:77.28KB ,
资源ID:11655555      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11655555.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(python二级考试操作题10演示教学.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

python二级考试操作题10演示教学.docx

1、python二级考试操作题10演示教学python二级考试操作题101.101描述参照代码模板完善代码,实现下述功能。输入一个字符串,其中的字符由(英文)逗号隔开,编程将所有字符连成一个字符串,输出显示在屏幕上。输入输出示例输入输出示例 11,2,3,4,512345习题讲解答案:ls= input(请输入一个字符串,由逗号隔开每个字符:).split(,)(1)print(.join(ls)(2)要点:1. 题目要求输入的字符用逗号隔开,所以,需要用到split(,)来从字符串里提取所输入的字符2. 经过split()函数的字符串,返回的是列表3. 字符串有个操作函数是 str.join(l

2、s),可以把列表里的各个元素,用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:7

3、5,English:72将列表 studs 的数据内容提取出来,放到一个字典 scores 里,在屏幕上按学号从小到大的顺序显示输出 scores 的内容。内容示例如下:101:85, 82, 80102:75, 72, 70103:95, 92, 90输入输出示例输入输出示例 1无101:85, 82, 80102:75, 72, 70103: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

4、:75,English:72scores = for stud in studs: sv = stud.items() v = for it in sv: if it0 =sid: k = it1 else: v.append(it1) scoresk = v# print(scores)so = list(scores.items()so.sort(key = lambda x:x0,reverse = False)for l in so:print(:.format(l0,l1)studs= sid:103,Chinese: 90,Math:95,English:92,sid:101,Ch

5、inese: 80,Math:85,English:82,sid:102,Chinese: 70,Math:75,English:72lit=for i in studs: 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()for i in lit: print(.join(i)要点:

6、1. 字典作为元素,定义在列表里,用列表的遍历就可以从中提取出来2. 提取出来的元素直接就是字典,因此可以用 items()直接获取,形成键值对对象集合 sv;3. 对键值对对象集合sv遍历,就可以以元组it的方式访问其中的每一对键值对,sv =stud.items(),是第一个空的答案;4. 题目要求提取学生的学号,所以需要比较键it0是否是sid,是则将学号it1提取出来作为新的字典scores的键k;不是则将成绩提取出来作为新字典scores的值v;5. 由于课程是多门,因此新字典scores的值v需要以列表的方式,保存各门课程的成绩,所以在不是的情况下,新字典scores的值v是利用a

7、ppend(it1)的方式,追加到列表的后面;6. 对v做append操作,必须要事先定义v是一个空列表;因此需要在对每一条旧字典stud的键值对信息做处理的for it in sv:语句之前,用v = 初始化v为一个空列表;7. 经过对一条字典stud的处理,就形成一对k和v,所以接下来是给新字典scores添加一条键值对,scoresk = v,是第二个空的答案8. 经过对全部的studs列表里的各条字典处理完之后,新的scores字典就全部生成。9. 题目要求按学号从小到大的顺序输出学号和成绩,所以需要对字典的键值对内容items()提取到列表so里,此处是第三个空的答案:so =lis

8、t(scores.items()10. 用Lambda函数进行排序。这个不在考试范围里,所以代码模板直接给出语句;11. 对排好序的列表输出每组列表,这个直接给出语句,不再赘述。3.103描述参照代码模板完善代码,实现下述功能。从键盘输入一个用于填充的图符,一个字符串,一个要显示的字符串的总长度;编程将输入的字符串,居中输出显示在屏幕上,用填充图符补齐到输入的总长度。如果总长度处输入的不是正整数,则提示请输入一个正整数,并重新提示输入,直至输入正整数。输入:请输入填充符号:请输入要显示的字符串:qq请输入字符串总长度:r请输入一个正整数请输入字符串总长度:3.4请输入一个正整数请输入字符串总长

9、度:4输出:qq输入输出示例输入输出示例 1qq4qq习题讲解答案:#请在_处填写一行代码#请在 处填写多行代码#不要修改已给出代码a = input() # 请输入填充符号c = input() # 请输要显示的字符串flag = 1while flag: try: b = eval(input() # 请输入字符串总长度 except: flag = 1 print(请输入一个正整数) else: if type(b)= int and b0: flag = 0 else: flag = 1 print(请输入一个正整数)print(0:12.format(c,a,b)4.201描述参照代

10、码模板完善代码,实现下述功能,不得修改其它代码。使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制螺旋状的正方形,正方形边长从 1 像素开始,第一条边从 0 度方向开始,效果如下图所示。-自动评阅说明使用字符串形式输出 _,_,_中应填代码即可以自动评阅得分例如,如果代码为:# 代码模板 | # 你的代码import turtle | import turtled = 0 | d = 0for i in range(_1_): | for i in range(1): turtle.fd(_2_) | turtle.fd(100) d = _3_ |

11、 d = (i + 100) * 100turtle.seth(d) | turtle.seth(d)则在提交代码页面输入:print(1, 100, (i + 100) * 100)提交后即可以查看得分注:如果有运算符,请在运算符两侧加上空格习题讲解答案:import turtled = 0k = 1for j in range(10): for i in range(4): turtle.fd(k) d += 91 turtle.seth(d) k += 2turtle.done()要点:1. 降低了难度,让填写的都是最简单的5.202描述参照代码模板完善代码,实现下述功能,可以修改其它代

12、码。附件文件 question.txt 中有一道 Python 选择题,第 1 行的第 1 个数据为题号,后续的 4 行是 4 个选项。示例内容如下:3. 以下关于字典类型的描述,错误的是:A. 字典类型中的数据可以进行分片和合并操作B. 字典类型是一种无序的对象集合,通过键来存取C. 字典类型可以在原来的变量上增加或缩短D. 字典类型可以包含列表和其他数据类型,支持嵌套的字典读取其中的内容,提取题干和四个选项的内容,利用 jieba 分词并统计出现频率最高的 3 个词,其中要删除以下的常用字和符号“的 ,::可以是和中以下B”,作为该题目的主题标签,显示输出在屏幕上。输入输出示例输入输出示例

13、 1从文件 question.txt 中读取所有内容第3题的主题是:类型:5集合:2组合:2习题讲解答案:import jiebafi = open(question.txt,r)con = num = 0for l in fi: l=l.replace(n,).strip().split(.) # print(l) try: ft = eval (l 0) except: pass else: num = ftcon += l 1print(第题的主题是:.format(num)conls = jieba.lcut(con)dict = for word in conls: dictword

14、 = dict.get(word, 0) + 1dictls = list(dict.items()dictls.sort(key = lambda x:x1, reverse = True)k = 0for it in dictls: if it0 in 的 ,::可以是和中以下B: continue else: if k = 3: break else: print(:.format(it0,it1) k += 1fi.close()要点:1. 导入jieba库,使用lcut分词,返回列表conls2. 打开文件,读文件,关闭文件3. 按行从文件里读,每一行是一个字符串,用strip和sp

15、lit处理成列表,因为要识别题号,还要提取题目和选项的内容,所以要按照.分隔来提取,分别返回题号和选项号作为列表l的第0个字段,后面的内容是列表l的第一个字段;4. 为了识别题号,要利用eval,并逆向利用try-except结构捕捉第一个字段是整数的字段,把题号提取出来放到num里面,把其他的内容都用字符串加法,拼成一个大字符串con5. 给出第一句显示:print(第题的主题是:.format(num)6. 接下来处理con,提取整个题干的主题词:7. 用jieba分词,然后用字典dict来保存没个词出现的次数。一种惯用法是for word in conls: dictword = dic

16、t.get(word, 0) + 18.统计出来的词以及词频,需要排序找到最大三个词频,此时需要把字典的键值对items()提取出来形成列表dictls,并利用列表排序和lambda函数。得到排好序的dictls9.显示的时候,遍历字典的每个键,要避开那些没有意义的词,题目里给出了剔除列表,拿过来判断一下,如果是没用的词,就直接跳过,循环下一个,用continue;10.如果是有意义的词,题目要求显示三个最高词频的词,因为中间有跳过的词,不能直接只循环排序靠前的3个词。要对显示了的词做计数,计够三个,就中断循环,所以要用break;11. 这里用了嵌套的分支结构,在第一个分支里是有意义的词,在

17、第二个分支里是计数不到三个,才做显示输出的语句,显示完了,要把计数器k加一。12.程序最后记着关闭文件。6.301描述老王的血压有些高,医生让家属给老王测血压。老王的女儿记录了一段时间的血压测量值,在文件 xueyajilu.txt 中,内容示例如下:2018/7/2 6:00,140,82,136,90,692018/7/2 15:28,154,88,155,85,632018/7/3 6:30,131,82,139,74,612018/7/3 16:49,145,84,139,85,732018/7/4 5:03,152,87,131,85,63文件内各部分含义如下:测量时间,左臂高压,左

18、臂低压,右臂高压,右臂低压,心率参照代码模板完善代码,实现下述功能,可以修改给定代码。(1)使用字典和列表类型进行数据分析,获取老王的 左臂和右臂的血压平均值 左臂和右臂的高压最高值、低压最高值 左臂和右臂的高/低压差平均值 心率的平均值给出左臂和右臂血压情况的对比表,输出到屏幕上,请注意每行三列对齐。示例如下:(2)上述显示的五个项目,如果左臂有大于 50% 的项目高于右臂,则输出“结论:左臂血压偏高”;如果等于 50% 的项目高于右臂,则输出“结论:左臂血压与右臂血压相当”;如果小于 50% 的项目高于右臂,则输出“结论:右臂血压偏高”。示例如下:结论:左臂血压偏高, 心率的平均值为66(

19、注意:此处为格式示例,实际数据与此不同)输入输出示例输入输出示例 1读取文件 xueyajilu.txt内容结论:左臂血压偏高, 心率的平均值为66习题讲解答案:fi = open(xueyajilu.txt,r)jl = , # 1:zb_h, zb_l,yb_h,yb_lzyc = yyc = xl = for l in fi: lls=l.replace(n,).strip().split(,) for i in range(1,5): jli.append(eval(llsi) zyc.append(eval(lls1)-eval(lls2) yyc.append(eval(lls3)

20、-eval(lls4) xl.append(eval(lls5)fi.close()cnt = len(xl)res = res.append(list(高压最大值,max(jl1),max(jl3)res.append(list(低压最大值,max(jl2),max(jl4)res.append(list(压差平均值,sum(zyc)/cnt,sum(yyc)/cnt)res.append(list(高压平均值,sum(jl1)/cnt,sum(jl3)/cnt)res.append(list(低压平均值,sum(jl2)/cnt,sum(jl4)/cnt)res.append(list(心

21、率平均值,sum(xl)/cnt,0)zbg = 0ybg = 0print(:10:10:10.format(对比项, 左臂, 右臂)for r in range(len(res)-1): print(:10:10: resr2: zbg += 1 else: ybg += 1if zbg ybg: print(结论:左臂血压偏高,end =)elif zbg = ybg: print(结论:左臂血压与右臂血压相当,end =)else: print(结论:右臂血压偏高,end =)print(, 心率的平均值为.format(res51)输出结果:对比项 左臂 右臂 高压最大值 163 1

22、55 低压最大值 93 90 压差平均值 61 57 高压平均值 146 140 低压平均值 85 82 结论:左臂血压偏高, 心率的平均值为66要点:1. 这道题的关键问题是解决对行数据按照列的方式来处理2.参考答案给出的是一般思路,把文件里读出来的数据分别按列的方式,拷贝到一维列表中去,对一维列表进行各种max,min,sum,len操作4.数据处理的逻辑并不复杂,这里不赘述。5.其次要解决的问题,是当列数有些多的时候,程序看起来很冗余,需要做一些优化合并;6.答案里给出的方案是前四个计算公式类似的,放到一个二维列表里,加个循环结构,就可以把四条语句缩成一条。7.第三个问题,显示输出要求像

23、表格一样输出,又要比较高效率,就引入了一个二维列表,把要输出的行头和内容,变成列表,再加到二维列表中去8.最后的显示就变得很容易,一个循环就搞定了。9.最后的问题,是要对输出的二维表格数据作统计、比对、下结论。比较好的方法是输出的时候,顺便做计数;10. 显示输出结论的时候,遇到一个小问题,要在做比对后的不同的结论后面,追加一条相同的心率的平均值,还不能换行;解决的方法就是用end=,然后在最后加一句print心率的结果。11. 当然可以在每条结论的后面,都重复的写一句心率的结果,虽然最后的结果是一样的,但代码有冗余。如果把咱们写程序,比喻成女娲造人,冗余的程序就像胖子,而高效简洁的程序就像美女,咱们还是要追求造出美女,而不是胖子

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1