《python二级考试操作题8.doc》由会员分享,可在线阅读,更多相关《python二级考试操作题8.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1.101从键盘输入一个人的身高和体重的数字,以英文逗号隔开,在屏幕上显示输出这个人的身体质量指数(BMI),BMI 的计算公式是 BMI = 体重(kg)/ 身高2(m2)。参照代码模板完善代码,实现下述功能,本题支持自动评阅。输入输出示例输入输出示例 11.6,50BMI是19.5习题讲解h,w = eval(input() # 请输入身高(m)和体重(kg),逗号隔开print(BMI是 :.1f.format(w /(h*h) )# 需要掌握浮点数的输出格式符和 eval 用法2.102参照代码模板完善代码,实现下述功能。从键盘输入一个由 1 和 0 组成的二进制字符串 s,转换为十进
2、制数输出显示在屏幕上,示例如下:输入请输入一个由 1 和 0 组成的二进制数字串:1101输出转换成十进制数是:13本题支持自动评阅。输入输出示例输入输出示例 1110113习题讲解s = input() # 请输入一个由1和0组成的二进制数字串:d = 0while s: d = d*2 + (ord(s0) -ord(0) s = s1:print(转换成十进制数是:.format(d)#需要掌握 print 和 format 的格式用法,字符串的内置处理函数3.103参照代码模板完善代码,实现下述功能,本题支持自动评阅:计算两个向量的内积。从键盘接收一个整数 n,作为一维向量的长度;然后
3、输入 n 个整数,以英文逗号隔开,存成一个向量 x,然后再接收另 n 个整数,以逗号隔开,存成另一个向量 y,然后计算两个向量对应元素的乘积的和。在屏幕上输出结果。示例如下:输入31,2,34,5,6输出x和y的内积是:32输入输出示例输入输出示例 131,2,34,5,6x和y的内积是:32习题讲解答案:n = eval(input() # 请输入向量的长度n:xin = input().split(,) # 请输入向量x的个整数,以英文逗号分隔:.format(n)yin = input().split(,) # 请输入向量y的个整数,以英文逗号分隔:.format(n)sum = 0fo
4、r i in range(n): sum += int(xini) * int(yini)print(x和y的内积是:, sum)要点:1. 要用输入进去的n来给用户提示,所以在input里用到了format()2. 输入的数据是带逗号的字符串格式,需要分割并且放到列表里,用到split()3. 求内积的公式需要记住,这属于基础知识4.列表里的数据仍然还是字符串,所以计算的时候,每个元素要单个的用int做转换,成为证书,也可以用eval5.题目没要求处理输入的异常,自己可以扩展一下,处理输入的异常,给出错误提示,不要让程序异常退出。4.201在代码模板中给出了程序框架,请按照框架中的说明,完善
5、横线处代码,不得修改其它代码。使用 turtle 库的 turtle.circle() 函数和 turtle.seth() 函数绘制套圈,最小的圆圈半径为 10 像素,不同圆圈之间的半径差是 40 像素。效果如下图所示。-自动评阅说明使用字符串形式输出 _,_,_中应填代码即可以自动评阅得分例如,如果代码为:# 代码模板 | # 你的代码import turtle | import turtled = 0 | d = 0for i in range(_1_): | for i in range(1): turtle.fd(_2_) | turtle.fd(100) turtle._3_ | t
6、urtle.fd(100 + (i * 3)turtle.seth(d) | turtle.seth(d)则在提交代码页面输入:print(1, 100, fd(100 + (i * 3)提交后即可以查看得分注:如果有运算符,请在运算符两侧加上空格习题讲解import turtler =10head = 90for i in range (4): turtle.seth(head) turtle.circle (r) r = r + 40turtle.done()会使用turtle库的主要函数,并利用循环结构提高代码简洁性5.202在代码模板中给出了程序框架,根据文件内的提示补充完善代码,可以
7、修改其他代码。从键盘输入一个中文字符串变量 s,内部包含中文逗号和句号。问题1:(8分)计算字符串 s 中的中文字符个数,不包括中文逗号和句号字符。示例如下:输入:没有人不爱惜他的生命,但很少人珍视他的时间。输出:中文字符数为20。问题2:(7分)用 jieba 分词后,显示分词的结果,用”/”分隔。并显示输出分词后的中文词语的个数,不包含逗号和句号。示例如下:输入:没有人不爱惜他的生命,但很少人珍视他的时间。输出:没有/ 人/ 不/ 爱惜/ 他/ 的/ 生命/ 但/ 很少/ 人/ 珍视/ 他/ 的/ 时间/中文词语数为14自动评阅要求问题 1和 2同时输出,见示例。输入输出示例输入输出示例1
8、没有人不爱惜他的生命,但很少人珍视他的时间。没有/ 人/ 不/ 爱惜/ 他/ 的/ 生命/ 但/ 很少/ 人/ 珍视/ 他/ 的/ 时间/中文词语数为14。中文字符数为20。习题讲解import jiebas = input() # 请输入一个中文字符串,包含逗号和句号s = s.replace(,,).replace(。,)n = len(s)k=jieba.lcut(s)m = len(k)for i in k: print(i, end= / )print(n中文词语数为。.format(m)print(中文字符数为。.format(n)会使用jieba分词的主要函数6.301使用字典和
9、列表型变量完成学生通讯录管理,名单由考生目录下文件 address.txt 给出,每行是一个学生的信息。示例如下:学号,姓名,电话号码,地址101,aa,12345678,Beijing102,bb,23456781,shanghai问题1:参照代码模板完善代码,实现下述功能。在屏幕上显示功能菜单,功能菜单示例如下:1. 显示所有信息2. 追加信息3. 删除信息请输入数字1-3选择功能:接收用户输入数字选择功能,如果输入错误,要求用户重新输入。如果输入正确,在屏幕上显示提示语句:您选择了功能1/2/3. (5分)问题2:在问题1的代码基础上完善代码,实现下述功能。实现功能1当用户选择1的时候,
10、从通讯录文件读取信息,显示所有信息。(5分)示例如下:1. 显示所有信息2. 追加信息3. 删除信息请输入数字1-3选择功能:1101,aa,12345678,Beijing102,bb,23456781,shanghai问题3:在问题2的代码基础上完善代码,实现下述功能。实现功能2追加信息。让用户从键盘输入一个学生的信息,用逗号隔开。在屏幕上显示追加后的所有信息,并将信息写入文件 new_address.txt 中,文件格式与 address 相同。(10分)New_address.txtd内容示例如下:101,aa,12345678,Beijing102,bb,23456781,shang
11、hai103,cc,34567,tianj输入输出示例输入输出问题 11您选择了功能1.问题21101,aa,12345678,Beijing102,bb,23456781,shanghai问题32103,cc,34567,tianj101,aa,12345678,Beijing102,bb,23456781,shanghai103,cc,34567,tianj内容输出到文件中,new_address.txt本题输出较为复杂,暂不支持自动评阅。print(ok)提交即可得分。习题讲解#P301-1menu=1. 显示所有信息,2. 追加信息,3. 删除信息flag = 1while flag:
12、 for m in menu: print(m) try: ch = int(input(请输入数字1-3选择功能:) ) flag =0 except: flag = 1 if ch 3: flag = 1print(您选择了功能, ch)#P301-2#-*- coding=utf-8 -*-def display(): fi = open(text.csv,r) for l in fi: l=l.replace(n,) print(l) fi.close()# menu=1. 显示所有信息,2. 追加信息,3. 删除信息flag = 1while flag: for m in menu:
13、 print(m) try: ch = int(input(请输入数字1-3选择功能:) ) flag =0 except: flag = 1 if ch 3: flag = 1if ch =1: display()elif ch=2: passelif ch =3: pass# P301-3def display(): fi = open(address.txt,r) for l in fi: l=l.replace(n,) print(l) fi.close() def insertrec(): fi = open(address.txt,r) fo = open(new_address.
14、txt,w) la= for l in fi: la.append(l.replace(n,) rec = input(请输入要插入的信息,以逗号隔开,示例:103, cc, 34567812, tianjing:) la.append(rec) for l in la: fo.write(l) fo.write(n) fi.close() fo.close()menu=1. 显示所有信息,2. 追加信息,3. 删除信息flag = 1while flag: for m in menu: print(m) try: ch = int(input(请输入数字1-3选择功能:) ) flag =0
15、 except: flag = 1 if ch 3: flag = 1if ch =1: display()elif ch=2: insertrec()elif ch =3: pass# 这个题目演示了一个简单的交互式的信息管理软件的开发思路,分为三个小题目,循序渐进,逐步扩展。从菜单的显示到循环接收用户输入选项,主要使用了列表的显示,while循环结构和for循环结构,以及用try-except来处理用户输入异常。利用功能函数的定义和调用,优化了整个程序的结果,使得主程序只负责流程和交互,而让一个个小函数来完成具体的功能。因题量的限制,只检测了显示和插入功能,实际上根据这个思路,还可以有很多信息处理的功能,例如追加、删除、修改其中的信息项目等。学生在做完本考题后,可以自己扩展题目的要求,在此基础上自己加强训练。