【paddle领航团基础python课程】三岁水课—结营大作业

简介: 【paddle领航团基础python课程】三岁水课—结营大作业

飞桨领航团



领航团简介


飞桨领航团是飞桨开发者的兴趣社区,为开发者们提供丰富的本地技术沙龙、Meetup、及线上交流平台,面向所有对人工智能及深度学习领域感兴趣的开发者开放。在各个城市/高校领航团团长及成员的热情支持下,飞桨领航团已建立132个社群,覆盖28个省级行政区,108个高校,并且在持续增长中。欢迎开发者们加入领航团,结识更多本地技术同好,共建开源社区,共享开源成果与快乐。


20210209150119378.png


领航团欢迎您的加入

领航团传送门


第一题(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


以上四个txt文档在work路径下可以找到。


定义Student类,包括name、dob、age、gender和score属性,包括top3方法用来返回学生的最大的3个成绩(可重复)、sanitize方法用来将负的分数变为正的分数,负的分数可能是输入错误。声明stu_list对象组数用于存储所有的学生对象。最后输出所有的学生信息包括姓名、生日、年龄、性别、最高的3个分数。


第一题的输出结果如下,供参考:


afdfafffb75cb54ac62846f3e99cafcb.png


def opentext(txt):
    with open(txt) as f:
        line = f.readline()
        # 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]
姓名:赵同学 生日:2020-11-3 年龄:24 性别:'女' 分数:[95, 91, 91]
姓名:王同学 生日:2021-8-7 年龄:25 性别:'男' 分数:[100, 100, 90]
姓名:李同学 生日:2021-8-10 年龄:29 性别:'男' 分数:[95, 95, 92]


第二题(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


以上两个txt文档在work路径下可以找到。

定义Spostudent、Artstudent为Student的子类,在子类的属性里面新增了spe为特长分数。

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


第二题的输出结果如下,供参考:


b81092bef4abfb586f9d5073180eb4c3.png


# 请在此处完成代码
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
姓名:特长同学 生日:2020-10-6 年龄:20 性别:'女' 分数:[92, 91, 91] 特长分:230


目录
相关文章
|
3月前
|
供应链 数据挖掘 Serverless
【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】
【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】
【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】
|
3月前
|
机器学习/深度学习 数据采集 算法
【python】python基于微博互动数据的用户类型预测(随机森林与支持向量机的比较分析)(源码+数据集+课程论文)【独一无二】
【python】python基于微博互动数据的用户类型预测(随机森林与支持向量机的比较分析)(源码+数据集+课程论文)【独一无二】
|
3月前
|
机器学习/深度学习 供应链 数据可视化
【python】python化妆品销售logistic逻辑回归预测分析可视化(源码+课程论文+数据集)【独一无二】
【python】python化妆品销售logistic逻辑回归预测分析可视化(源码+课程论文+数据集)【独一无二】
|
3月前
|
数据采集 存储 数据可视化
【python】python古代玻璃制品的成分数据分析与可视化(源码+数据+课程论文)【独一无二】
【python】python古代玻璃制品的成分数据分析与可视化(源码+数据+课程论文)【独一无二】
|
3月前
|
数据可视化 数据挖掘 定位技术
【python】python商家会员数据分析可视化(源码+数据集+课程报告论文)
【python】python商家会员数据分析可视化(源码+数据集+课程报告论文)
|
4月前
|
机器学习/深度学习 文字识别 开发者
【Python】已解决:(paddleocr导包报错)ModuleNotFoundError: No module named ‘paddle’
【Python】已解决:(paddleocr导包报错)ModuleNotFoundError: No module named ‘paddle’
383 0
|
Java Python
Python基础 | 深浅拷贝问题、递归函数练习
在实际工作中,经常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题。为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用。为了生成这个副本,就产生了拷贝。下面先了解一下几个概念:对象、可变类型、引用
254 0
Python基础 | 深浅拷贝问题、递归函数练习
|
Python
python——基础练习(五)
python——基础练习(五)
134 0
python——基础练习(五)
|
Python
python——基础练习(四)
python——基础练习(四)
139 0
python——基础练习(四)