python二级操作题与分析(8)
发布日期:2022-02-01 03:01:55 浏览次数:10 分类:技术文章

本文共 5094 字,大约阅读时间需要 16 分钟。

z1.101

从键盘输入一个人的身高和体重的数字,以英文逗号隔开,在屏幕上显示输出这个人的身体质量指数(BMI),BMI 的计算公式是 BMI = 体重(kg)/ 身高2(m2)。

参照代码模板完善代码,实现下述功能,本题支持自动评阅。

输入输出示例

输入 输出
示例 1 1.6,50 BMI是19.5

习题讲解h,w = eval(input()) # 请输入身高(m)和体重(kg),逗号隔开print("BMI是 {:.1f}".format(w /(h*h) ))

需要掌握浮点数的输出格式符和 eval 用法

2.102

参照代码模板完善代码,实现下述功能。

从键盘输入一个由 1 和 0 组成的二进制字符串 s,转换为十进制数输出显示在屏幕上,示例如下:

输入

请输入一个由 1 和 0 组成的二进制数字串:1101
输出
转换成十进制数是:13

本题支持自动评阅。

输入输出示例

输入 输出
示例 1 1101 13

习题讲解s = input() # 请输入一个由1和0组成的二进制数字串:d = 0while s:   d = d*2 + (ord(s[0]) -ord('0'))   s = s[1:]print("转换成十进制数是:{}".format(d))

#需要掌握 print 和 format 的格式用法,字符串的内置处理函数

3.103

参照代码模板完善代码,实现下述功能,本题支持自动评阅:

计算两个向量的内积。从键盘接收一个整数 n,作为一维向量的长度;然后输入 n 个整数,以英文逗号隔开,存成一个向量 x,然后再接收另 n 个整数,以逗号隔开,存成另一个向量 y,然后计算两个向量对应元素的乘积的和。在屏幕上输出结果。

示例如下:

输入

3
1,2,3
4,5,6

输出

x和y的内积是:32

输入输出示例

输入	输出

示例 1 3

1,2,3
4,5,6 x和y的内积是:32
习题讲解

答案:n = eval(input()) # "请输入向量的长度n:"xin = input().split(',') # "请输入向量x的{}个整数,以英文逗号分隔:".format(n)yin = input().split(',') # "请输入向量y的{}个整数,以英文逗号分隔:".format(n)sum = 0for i in range(n):   sum += int(xin[i]) * int(yin[i])print("x和y的内积是:", sum)

要点:

  1. 要用输入进去的n来给用户提示,所以在input里用到了format()
  2. 输入的数据是带逗号的字符串格式,需要分割并且放到列表里,用到split()
  3. 求内积的公式需要记住,这属于基础知识
    4.列表里的数据仍然还是字符串,所以计算的时候,每个元素要单个的用int做转换,成为证书,也可以用eval
    5.题目没要求处理输入的异常,自己可以扩展一下,处理输入的异常,给出错误提示,不要让程序异常退出。
    4.201

在代码模板中给出了程序框架,请按照框架中的说明,完善横线处代码,不得修改其它代码。

使用 turtle 库的 turtle.circle() 函数和 turtle.seth() 函数绘制套圈,最小的圆圈半径为 10 像素,不同圆圈之间的半径差是 40 像素。效果如下图所示。


自动评阅说明

使用字符串形式输出 ,,____③____中应填代码即可以自动评阅得分

例如,如果代码为:

代码模板 | # 你的代码import turtle | import turtle

d = 0 | d = 0for 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 turtler =10head = 90for i  in range (4):   turtle.seth(head)   turtle.circle (r)   r = r + 40turtle.done()

会使用turtle库的主要函数,并利用循环结构提高代码简洁性

5.202

在代码模板中给出了程序框架,根据文件内的提示补充完善代码,可以修改其他代码。

从键盘输入一个中文字符串变量 s,内部包含中文逗号和句号。

问题1:(8分)计算字符串 s 中的中文字符个数,不包括中文逗号和句号字符。示例如下:

输入:
没有人不爱惜他的生命,但很少人珍视他的时间。
输出:
中文字符数为20。

问题2:(7分)用 jieba 分词后,显示分词的结果,用”/”分隔。并显示输出分词后的中文词语的个数,不包含逗号和句号。示例如下:

输入:
没有人不爱惜他的生命,但很少人珍视他的时间。
输出:
没有/ 人/ 不/ 爱惜/ 他/ 的/ 生命/ 但/ 很少/ 人/ 珍视/ 他/ 的/ 时间/
中文词语数为14

自动评阅要求问题 1 和 2 同时输出,见示例。

输入输出示例

输入 输出
示例1 没有人不爱惜他的生命,但很少人珍视他的时间。 没有/ 人/ 不/ 爱惜/ 他/ 的/ 生命/ 但/ 很少/ 人/ 珍视/ 他/ 的/ 时间/
中文词语数为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

使用字典和列表型变量完成学生通讯录管理,名单由考生目录下文件 address.txt 给出,每行是一个学生的信息。示例如下:

学号,姓名,电话号码,地址
101,aa,12345678,Beijing
102,bb,23456781,shanghai
问题1:参照代码模板完善代码,实现下述功能。在屏幕上显示功能菜单,功能菜单示例如下:

  1. 显示所有信息
  2. 追加信息
  3. 删除信息
    请输入数字1-3选择功能:

接收用户输入数字选择功能,如果输入错误,要求用户重新输入。如果输入正确,在屏幕上显示提示语句:您选择了功能1/2/3. (5分)

问题2:在问题1的代码基础上完善代码,实现下述功能。实现功能1——当用户选择1的时候,从通讯录文件读取信息,显示所有信息。(5分)

示例如下:

  1. 显示所有信息
  2. 追加信息
  3. 删除信息
    请输入数字1-3选择功能:1
    101,aa,12345678,Beijing
    102,bb,23456781,shanghai

问题3:在问题2的代码基础上完善代码,实现下述功能。实现功能2——追加信息。让用户从键盘输入一个学生的信息,用逗号隔开。在屏幕上显示追加后的所有信息,并将信息写入文件 new_address.txt 中,文件格式与 address 相同。(10分)

New_address.txtd内容示例如下:
101,aa,12345678,Beijing
102,bb,23456781,shanghai
103,cc,34567,tianj

输入输出示例

输入 输出
问题 1 1 您选择了功能1.
问题2 1 101,aa,12345678,Beijing
102,bb,23456781,shanghai
问题3 2
103,cc,34567,tianj 101,aa,12345678,Beijing
102,bb,23456781,shanghai
103,cc,34567,tianj

内容输出到文件中,new_address.txt

本题输出较为复杂,暂不支持自动评阅。print(‘ok’) 提交即可得分。

习题讲解#P301-1menu=["1. 显示所有信息","2. 追加信息","3. 删除信息"]flag = 1while flag:   for m in menu:       print(m)   try:       ch = int(input("请输入数字1-3选择功能:") )       flag =0   except:       flag = 1   if    ch <1 or 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:       print(m)   try:       ch = int(input("请输入数字1-3选择功能:") )       flag =0   except:       flag = 1   if    ch <1 or 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.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   except:       flag = 1   if    ch <1 or ch > 3:       flag = 1if ch ==1:   display()elif ch==2:   insertrec()elif ch ==3:   pass#

这个题目演示了一个简单的交互式的信息管理软件的开发思路,分为三个小题目,循序渐进,逐步扩展。从菜单的显示到循环接收用户输入选项,主要使用了列表的显示,while循环结构和for循环结构,以及用try-except来处理用户输入异常。利用功能函数的定义和调用,优化了整个程序的结果,使得主程序只负责流程和交互,而让一个个小函数来完成具体的功能。因题量的限制,只检测了显示和插入功能,实际上根据这个思路,还可以有很多信息处理的功能,例如追加、删除、修改其中的信息项目等。学生在做完本考题后,可以自己扩展题目的要求,在此基础上自己加强训练。

转载地址:https://blog.csdn.net/qq_43313588/article/details/88378169 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:流水线调度问题【java版本】
下一篇:python二级操作题与分析(9)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年03月26日 13时35分11秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

linux设备管理命令,Linux命令(设备管理).doc 2019-04-21
linux 中文utf-8转gbk编码,Linux平台下 GBK编码转UTF-8编码 2019-04-21
linux安装软件在boot,在Linux系统上安装Spring boot应用的教程详解 2019-04-21
linux进入用户user1主目录,Linux系统命令提示符为[user1@localhost root]当前用户所在目录为( )... 2019-04-21
取消linux自动登录,linuxdeepin 如何取消自动登录啊? 2019-04-21
linux线程存储,Linux系统编程手册:线程:线程安全和每线程存储 2019-04-21
linux以root账号登陆gnome,CentOS 7 - 以root身份登入Gnome 2019-04-21
linux crontab 备份数据库 空文件,Linux下使用crontab自动备份数据库 2019-04-21
linux批处理模式,巧用linux-top的批处理模式 2019-04-21
linux信号量机制例题,第二章 信号量机制及几个经典例题 2019-04-21
linux ba 模拟,在你的 Python 游戏中模拟引力 | Linux 中国 2019-04-21
c语言表达式3649的值是,535个C语言经典实例目录.doc 2019-04-21
c语言Wndproc未定义,小弟我用c语言写了一个windows窗口,为什么有提示未定义的变量类型... 2019-04-21
c语言中malloc数组,如何在C中对malloc()数组进行一行赋值? 2019-04-21
c语言调存储过程,写留言板–调用存储过程出问题 2019-04-21
c语言编程max,C语言编程题及答案.doc 2019-04-21
android测试页面,自动执行界面测试 | Android 开发者 | Android Developers 2019-04-21
android 图片点击变色,Android开发实现ListView点击item改变颜色功能示例 2019-04-21
android增删改查布局,Android之父_增删改查 2019-04-21
vowifi android开关,如何配置VoLTE, ViLTE and VoWifi(IMS config for VoLTE, ViLTE and VoWifi) 2019-04-21