### 第一题（30分）

stu1.txt 孙同学,2020-5-21,20,'男',77,56,77,76,92,58,-91,84,69,-91
stu2.txt 赵同学,2020-11-3,24,'女',65,68,72,95,-81,71,86,91,57,91
stu3.txt 王同学,2021-8-7,25,'男',87,78,90,-76,88,47,100,65,69,100
stu4.txt 李同学,2021-8-10,29,'男',92,54,85,71,-91,68,77,68,95,95

def opentext(txt):
with open(txt) as f:
# print(line.strip().split(','))
return line.strip().split(',')


# 请在此处完成代码
class Student():
def __init__(self, name, dob, age, gender, score):
self.name = name
self.dob = dob
self.age = age
self.gender = gender
self.score = score
def name(self):
return self.name
def dob(self):
return self.dob
def age(self):
return self.age
def gender(self):
return self.gender
def top3(self):
newlist = []
for t in self.score:
t = int(t)
if t < 0 :
t = -t
newlist.append(t)
return sorted(newlist)[::-1][:3]
def printf(textname):
txtlist = opentext(textname)
name = txtlist.pop(0)
dob = txtlist.pop(0)
age = txtlist.pop(0)
gender = txtlist.pop(0)
student = Student(name, dob, age, gender, txtlist)
# print(student.name)a
print(f'姓名：{student.name} 生日：{student.dob} 年龄：{student.age} 性别：{student.gender} 分数：{student.top3()}')
printf('work/stu1.txt')
printf('work/stu2.txt')
printf('work/stu3.txt')
printf('work/stu4.txt')

姓名：孙同学 生日：2020-5-21 年龄：20 性别：'男' 分数：[92, 91, 91]

### 第二题（30分）

stu5.txt 特长同学,2020-10-5,20,'男',180,87,98,77,76,92,58,-76,84,69,-47
stu6.txt 特长同学,2020-10-6,20,'女',230,76,48,82,88,92,58,-91,84,69,-68

Spostudent包括的top3方法返回的是最低的3个得分（可重复），Artstudent包括top3方法返回的是最高的3个得分（可重复），最后使用多态的方式输出2个特长同学的姓名、生日、年龄、性别、分数、特长分。

# 请在此处完成代码
class Spostudent(Student):
def __init__(self, name, dob, age, gender, score, spe):
Student.__init__(self, name, dob, age, gender, score)
self.spe = spe
def spe(self):
return self.spe
class Artstudent(Student):
def __init__(self,  name, dob, age, gender, score):
Student.__init__(self, name, dob, age, gender, score)
def top3(self):
newlist = []
for t in self.score:
t = int(t)
if t < 0 :
t = -t
newlist.append(t)
return sorted(newlist)[0:3]
def printf(text,a):
txtlist = opentext(text)
name = txtlist.pop(0)
dob = txtlist.pop(0)
age = txtlist.pop(0)
gender = txtlist.pop(0)
spe = txtlist.pop(0)
spostudent = Spostudent(name, dob, age, gender, txtlist, spe)
artstudent = Artstudent(name, dob, age, gender, txtlist)
if a == 0:
a = spostudent.top3()
else:
a = artstudent.top3()
print(f'姓名：{spostudent.name} 生日：{spostudent.dob} 年龄：{spostudent.age} 性别：{spostudent.gender} 分数：{a} 特长分：{spostudent.spe}')
printf('work/stu5.txt', 1)
{spostudent.gender} 分数：{a} 特长分：{spostudent.spe}')
printf('work/stu5.txt', 1)
printf('work/stu6.txt', 0)
姓名：特长同学 生日：2020-10-5 年龄：20 性别：'男' 分数：[56, 58, 69] 特长分：180

|
6天前
|

【代数学作业1完整版-python实现GNFS一般数域筛】构造特定的整系数不可约多项式：涉及素数、模运算和优化问题
【代数学作业1完整版-python实现GNFS一般数域筛】构造特定的整系数不可约多项式：涉及素数、模运算和优化问题
43 0
|
6天前
|

【代数学作业1-python实现GNFS一般数域筛】构造特定的整系数不可约多项式：涉及素数、模运算和优化问题
【代数学作业1-python实现GNFS一般数域筛】构造特定的整系数不可约多项式：涉及素数、模运算和优化问题
34 0
|
1月前
|
Python
python作业题
python作业题
32 0
|
3月前
|
Python
【作业】python课-实验一
python课-实验一 01_lambda计算圆
21 0
|
3月前
|
Python
python实现学生信息管理系统（附源码 可供大作业或练习使用）
python实现学生信息管理系统（附源码 可供大作业或练习使用）
89 0
|
8月前
|

“码上行动”：针对零基础Python学习者的课程

45 0
|
9月前
|
Python

41 0
|
10月前
|

python 从灯塔国某大学的作业题到制作一个“围棋”程序
python 从灯塔国某大学的作业题到制作一个“围棋”程序
70 0
|
10月前
|

170 0
|

Python：Python技巧之80个经典题——课程笔记（五）
Python：Python技巧之80个经典题——课程笔记
112 0

• 机器翻译
• 工业大脑

更多

更多

更多