image

编辑人: 浅唱

calendar2025-06-01

message1

visits261

2023月09月Python六级实操答案及解析

一、编程题

1、36.钢筋问题
统计三角形数量及钢筋总长度。某工程需要很多由钢筋组成的三角形,在文本文件“data.txt”中每一行的三个数字分别表示三根钢筋的长度(整数,单位:厘米,数字间用空格隔开),若这三根钢筋能组成三角形,要求统计并输出三角形数量以及这些钢筋材料的总长度(若不能组成三角形则不对这些数据进行统计),文本文件数据如图a所示,程序运行界面如图b所示。
| 完成该任务的思路是:首先从文本文件“data.txt”读取文本内容到变量line,提取边长数据后,统计数据并输出结果。相关代码如下,请补全代码:def readfile(filename): f = open(filename,encoding = "utf-8") m=[]; n=[]; k=[] line = f.readline() while line: x=line.strip().split(" ") m.append(int(x[0])) n.append(int(x[1])) k.append(int(x[2])) ① f.close() return m,n,k def triangle(x,y,z): # 判断数据x、y、z能否组成三角形 flag=False if ② : flag=True return flag a,b,c=readfile("/data/ ③ ") #读入文件n=len(a);count=0;sum=0print("能组成三角形的数据有:")for i in range(n): if ④ : sum+=a[i]+b[i]+c[i] print(a[i],b[i],c[i]) count+=1 print("能组成三角形的共有:",count,"组")print("共需要材料长度共是:",sum) | |
| ------------------------------------------------------------ | ---- |
| | |
| | |

解析:【喵呜刷题小喵解析】:

1. 首先,我们定义了一个`readfile`函数,用于读取文本文件的内容。在函数中,我们打开文件,使用`readline`方法逐行读取文件内容,直到文件结束。对于每一行,我们使用`strip`方法去除行首尾的空白字符,然后使用`split`方法按照空格分割字符串,将分割后的结果转换为整数列表,并添加到`lines`列表中。最后,我们关闭文件并返回`lines`列表。

2. 接着,我们定义了一个`triangle`函数,用于判断三个数能否组成三角形。根据三角形的性质,任意两边之和大于第三边,因此我们可以使用`a + b > c and a + c > b and b + c > a`来判断三个数能否组成三角形。

3. 然后,我们调用`readfile`函数读取文件内容,将读取到的内容存储到`a`、`b`、`c`列表中。我们统计了能组成三角形的数量`count`和总长度`sum_length`,并遍历每一行数据,如果这一行数据能组成三角形,则增加`count`的计数,并将这一行数据的长度累加到`sum_length`中。

4. 最后,我们输出能组成三角形的数量和总长度。

2、37.工资管理
编写简单的工资管理程序,系统中包含工人(worker)和经理(manage),所有员工都有员工号、姓名、基本工资等属性。
工人:工人具有工作小时数和时薪的属性,工资计算方法为基本工资 + 工作小时数 * 时薪;
经理: 具有固定的月薪,计算方法为固定月薪。
根据以上的要求设计类,显示人员的信息和工资情况,运行结果如下:
工号:001,姓名:King,本月工资:10000
King的月薪是:10000
工号:002,姓名:Lily,本月工资:20000
Lily每天的工作时长:10小时
Lily的月薪是: 20000
class Person():
def __init__(self,id,name,salary):
self.id = id
self.name = name

def __str__(self):#查看对象,触发执行print语句
msg = '工号:{},姓名:{},本月工资:{}'.format(self.id,self.name,self.salary)
return msg
class Worker(Person):
def __init__(self,id,name,salary,hours,per_hour):
super().__init__(id,name,salary)
self.hours = hours
self.per_hour = per_hour
def getSalary(self):
money = self.hours * self.per_hour

return ③
class Manage(Person):
def __init__(self,id,name,salary,time):
super().__init__(id,name,salary)
self.time = time

def getSalary(self):
return self.salary,self.time
worker = Worker('001','King',2000,160,50)
sal = worker.getSalary()
print(worker)
print('King的月薪是:{}'.format(sal))
manage = Manage('002','Lily',20000,10)
④ , work_time = manage.getSalary()
print(manage)
print('{}每天的工作时长:{}小时'.format('Lily', ⑤ ))
print('Lily的月薪是:',sal)

参考答案:① self.salary = salary② money += self.salary③ self.salary④ print(manage.getSalary())⑤ manage.time

解析:【喵呜刷题小喵解析】:

① 在`Person`类的初始化方法中,需要为`salary`属性赋值,所以应该添加`self.salary = salary`。

② 在`Worker`类的`getSalary`方法中,工资计算方式是基本工资加上工作小时数乘以时薪,所以应该添加`money += self.salary`。

③ `getSalary`方法的返回值应该是工人的工资,所以应该返回`self.salary`。

④ 在`manage = Manage('002','Lily',20000,10)`之后,应该调用`getSalary`方法并打印结果,所以应该添加`print(manage.getSalary())`。

⑤ 要打印Lily每天的工作时长,应该使用`manage.time`,因为`Manage`类的`getSalary`方法返回的是`(salary, time)`。

3、38.考试成绩处理
将某班级的期末考试成绩存放于data.db数据库文件的score数据表内,部分成绩截图如下。
现要求求出english成绩大于或等于80的所有学生的总分平均分,并输出结果。(无需运行通过,写入代码即可)
import sqlite3
conn=sqlite3.connect("data.db")
cur=conn.cursor( )
sql="select * from score ① "
cur.execute(sql)

conn.commit()
cur.close()
conn.close()
zf=0
for i in range(len(list1)):
zf+=sum( ③ )
pjf=zf/len(list1)
print("english大于或等于80分同学的总分平均分是",pjf)

参考答案:```pythonimport sqlite3conn = sqlite3.connect("data.db")cur = conn.cursor()# 替换①sql = "select * from score where english >= 80"cur.execute(sql)# 替换②rows = cur.fetchall()# 替换③zf = 0for i in range(len(rows)):zf += rows[i][1]# 计算平均分pjf = zf / len(rows)# 输出结果print("english大于或等于80分同学的总分平均分是", pjf)cur.close()conn.close()```

解析:【喵呜刷题小喵解析】:

根据题目要求,我们需要求出english成绩大于或等于80的所有学生的总分平均分。

首先,我们需要连接数据库,并创建一个游标对象。

然后,我们编写SQL查询语句,选择english成绩大于或等于80的所有学生。

执行SQL查询语句后,获取所有符合条件的学生记录。

接下来,我们遍历所有符合条件的学生记录,计算他们的总分,并累加。

最后,我们计算总分平均分,并输出结果。

在题目中,给出了部分成绩截图,但没有给出具体的数据库表结构,所以我们假设数据表名为"score",其中english成绩为第二列。

因此,在替换①时,我们编写了SQL查询语句,选择english成绩大于或等于80的所有学生。

在替换②时,我们执行SQL查询语句,获取所有符合条件的学生记录,并将结果存储在rows变量中。

在替换③时,我们遍历所有符合条件的学生记录,计算他们的总分,并累加。

最后,我们计算总分平均分,并输出结果。

注意,在实际使用时,需要根据具体的数据库表结构进行相应的调整。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2023月09月Python六级实操答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share