目录

作业1:

知识点1:eval使用

知识点1:类对象数组定义

知识点2:文件读取

知识点3:内容解包

知识点4:列表排序

作业2:

知识点1:类继承后 初始化管理

知识点2:文件的筛选


作业1:

数据如下:

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个分数。

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

初始思路:

class Student:def __init__(self, name, dob, age, gender, score):self.name = nameself.dob = dobself.age = ageself.gender = genderself.score = scoredef top3(self):self.sanitize()self.score = sorted(self.score)self.score=self.score[-3:]def sanitize(self):for i in range(len(self.score)):if self.score[i]<0:self.score[i]=abs(self.score[i])def print_stu(self):self.top3()print('姓名:', self.name, '生日:', self.dob,'年龄:', self.age, '性别:', self.gender, '分数:', self.score)s1 = Student('孙同学','2020-5-21','20','男',[77,56,77,76,92,58,-91,84,69,-91])
s2 = Student('赵同学','2020-11-3','24','女',[65,68,72,95,-81,71,86,91,57,91])
s3 = Student('王同学','2021-8-7','25','男',[87,78,90,-76,88,47,100,65,69,100])
s4 = Student('李同学','2021-8-10','29','男',[92,54,85,71,-91,68,77,68,95,95])
s5 = Student('特长同学','2020-10-5','20','男',[180,77,56,77,76,92,58,-91,84,69,-91])
s6 = Student('特长同学','2020-10-6','20','女',[230,77,56,77,76,92,58,-91,84,69,-91])text1 = '孙同学', '2020-5-21','20','男',[77,56,77,76,92,58,-91,84,69,-91]
text2 = '赵同学', '2020-11-3','24','女',[65,68,72,95,-81,71,86,91,57,91]
text3 = '王同学','2021-8-7','25','男',[87,78,90,-76,88,47,100,65,69,100]
text4 = '李同学','2021-8-10','29','男',[92,54,85,71,-91,68,77,68,95,95]
text5 = '特长同学','2020-10-5','20','男',[180,77,56,77,76,92,58,-91,84,69,-91]
text6 = '特长同学','2020-10-6','20','女',[230,77,56,77,76,92,58,-91,84,69,-91]
print(type(text1))
# 赋值办法1
stu_lst = [Student for i in range(6)]
for i in range(len(stu_lst)):stu_lst[i] = Student(*eval('text'+str(i+1)))stu_lst[i].print_stu()# 赋值办法2
print('----------------------------')
for i in range(6):i = eval('s'+str(i+1))i.print_stu()

知识点1:eval使用

后续改进:

'''
定义Student类,包括name、dob、age、gender和score属性,
包括top3方法用来返回学生的最大的3个成绩(可重复)、
sanitize方法用来将负的分数变为正的分数,负的分数可能是输入错误。
声明stu_list对象组数用于存储所有的学生对象。
最后输出所有的学生信息包括姓名、生日、年龄、性别、最高的3个分数。
'''
import osclass Student:def __init__(self, name, dob, age, gender, score):self.name = nameself.dob = dobself.age = ageself.gender = genderself.score = scoredef top3(self):self.sanitize()self.score = sorted(self.score)self.score=self.score[-3:]def sanitize(self):self.score = self.score.split(',')self.score =[int(i) for i in self.score]for i in range(len(self.score)):if self.score[i]<0:self.score[i]=abs(self.score[i])def print_stu(self):self.top3()print("姓名:"+self.name,end=' ')print("生日:"+self.dob,end=' ')print('年龄:'+self.age,end=' ')print('性别:'+self.gender,end=' ')print('分数:'+str(self.score))path = './aistudio/work'
listidr = os.listdir(path)
info_lst = []
num=0
for name in listidr:num = num+1if os.path.isfile(path+'/'+name):temp = name.split('.')(filename, filetype) = (temp.pop(0), temp.pop(0))if filetype == 'txt':with open(path+'/'+name,'r', encoding='UTF-8') as f:text =f.read()temp = tuple(text.split(',',4))info_lst.append(temp)stu_lst = [Student for i in range(num)]
for i in range(len(stu_lst)):stu_lst[i] = Student(*info_lst[i])stu_lst[i].print_stu()

知识点1:类对象数组定义

知识点2:文件读取

知识点3:内容解包

知识点4:列表排序

作业2:

数据格式如下:

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个特长同学的姓名、生日、年龄、性别、分数、特长分。

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

import osclass Student:def __init__(self, name, dob, age, gender, score):self.name = nameself.dob = dobself.age = ageself.gender = genderself.score = scoredef sanitize(self):self.score = self.score.split(',')self.score = [int(i) for i in self.score]for i in range(len(self.score)):if self.score[i]<0:self.score[i]=abs(self.score[i])class Spostudent(Student):def __init__(self, name, dob, age, gender, score,spe):# super(Spostudent,self).__init__(spe)Student.__init__(self,name, dob, age, gender, score)self.spe = spedef top3(self):self.sanitize()self.score = sorted(self.score)self.score = self.score[0:3]def print_stu(self):self.top3()print("姓名:" + self.name, end=' ')print("生日:" + self.dob, end=' ')print('年龄:' + self.age, end=' ')print('性别:' + self.gender, end=' ')print('分数:' + str(self.score),end='')print('特长分:'+self.spe)class Artstudent(Student):def __init__(self, name, dob, age, gender, score,spe):Student.__init__(self, name, dob, age, gender, score)self.spe = spedef top3(self):self.sanitize()self.score = sorted(self.score)self.score = self.score[-3:]def print_stu(self):self.top3()print("姓名:" + self.name, end=' ')print("生日:" + self.dob, end=' ')print('年龄:' + self.age, end=' ')print('性别:' + self.gender, end=' ')print('分数:' + str(self.score), end=' ')print('特长分:' + self.spe)path = './aistudio/work'
listidr = os.listdir(path)
info_lst = []
num=0
for name in listidr:num = num+1if os.path.isfile(path+'/'+name):temp = name.split('.')(filename, filetype) = (temp.pop(0), temp.pop(0))if filetype == 'txt':with open(path+'/'+name,'r', encoding='UTF-8') as f:text =f.read()temp = list(text.split(',',5))temp[4], temp[5] = temp[5], temp[4]if "特长" in temp[0]:info_lst.append(temp)stu_1 = Spostudent(*info_lst[0])
stu_1.print_stu()stu_2 = Artstudent(*info_lst[1])
stu_2.print_stu()

知识点1:类继承后 初始化管理

知识点2:文件的筛选

Python-类与文件读取结合相关推荐

  1. python实现Excel文件读取的程序(附源代码)

    python实现Excel文件读取的程序   前一段时间帮一个朋友用python写了一个读Excel程序操作的程序,具体要求为:读取两个Excel文件,根据其中某个特征的特征值对这两个文件进行取交集操 ...

  2. python读取中文文件乱码-详解Python的json文件读取及中文乱码显示问题解决方法...

    Python的json文件读取及解决中文乱码显示问题 本文实例讲述了Python实现的json文件读取及中文乱码显示问题解决方法.分享给大家供大家参考,具体如下: city.json文件的内容如下: ...

  3. python中npz文件读取和图片显示

    python中npz文件读取和图片显示 1. npz文件读取 1.1 读入 1.2 大小 2. 读取图片 1. npz文件读取 1.1 读入 from PIL import Image import ...

  4. python中大数据文件读取

    python中大数据文件读取 python中经常会遇到读取大文件的场景.文件较小时,我通常采用下面方法,readlines(),该方法会一次性读取文件的所有行,并将其放入list中,最后存入内存中.可 ...

  5. Python实现comtrade文件读取

    最近在学习python,发现这个语言挺有意思,写起来比较轻松.后面打算用它代替matlab来做数据分析.写了一个comtrade格式录波文件的读取类.目前仅支持读取comtrade的binary格式文 ...

  6. Python之Excel文件读取

    今天研究了一下Python对Excel文件的读取,在此分享一下. 1.模块安装 想通过python对Excel文件进行处理,需要安装以下几个模块: pip install xlrd pip insta ...

  7. python中txt文件读取错误原因以及解决办法‘gbk‘ codec can‘t decode byte 0x80 in position 2: illegal multibyte sequence

    python的读写文件操作时,有时候会出现一些小问题,详细如下,(原因在前面,解决办法在文末). 读取txt文件时出现错误反馈如下: Traceback (most recent call last) ...

  8. python打开文件并读取内容-python怎么打开文件读取数据

    读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...

  9. File类3 文件读取

    将文件中的数据读入程序,是将程序外部的数据传入程序中,应该使用输入流--InputStream或Reader. 而由于读取的是特定的数据源--文件,则可以使用输入对应的子类FileInputStrea ...

  10. 怎么用python打开csv文件_使用Python从CSV文件读取数据

    CSV文件,也就是Comma-separated Value文件,用sublime打开是这样(数据下载见文末): 如果用excel打开是这样(千万别点保存,保存就有问题): 来看看怎么打开,如果安装了 ...

最新文章

  1. Putty添加SSH Key
  2. html设置字体整体放大,请教怎么样可以只放大或缩小内容层里的字体呢?我不想让整页都放大缩小。请指教!谢谢!_html/css_WEB-ITnose...
  3. Introduction-to-React-JS -- 2 Helloworld
  4. linuxSAMBA共享
  5. mysql忘记密码恢复
  6. Linux终端登录微信,Ubuntu18.04安装微信(Linux通用)
  7. Web前端工作笔记001---封装前端数据字典_js 数组filter 总结_详解
  8. 安装pytest时遇到的问题及解决方案
  9. oracle 重设基线,Oracle SQL执行计划基线总结(SQL Plan Baseline)
  10. centos ipython tab键上下键不起作用
  11. Nginx面试题总结
  12. ORACLE对字符串去空格处理(trim)
  13. 关于计算机信息学奥赛视频,震惊!信息学奥赛好处竟然这么多
  14. vue页面引用echart的词云图
  15. 靠谱的软件外包平台有哪些?
  16. win7计算机属性恢复,win7怎么打开系统还原功能?win7打开系统还原功能的方法步骤...
  17. Nginx从入门到入坟(十)- Rewrite功能详解与案例实操
  18. matlab--积分计算
  19. 高中知识复习与拓展——数列的求和
  20. Ubuntu Server 18.04 WiFi配置静态ip

热门文章

  1. centos6.5安装bugzilla超详细教程
  2. OS复习——设备管理习题
  3. Vue 脚手架配置代理
  4. 64位ie加载java失败_java-无法在AMD 64位平台上加载IA 32位.dll
  5. mysql infile local,MySQL:启用LOAD DATA LOCAL INFILE
  6. sql服务器文件夹共享,sqlserver2017共享功能目录路径不可改的解决方法
  7. LeetCode算法入门- 4Sum -day11
  8. 消息已读未读的模型设计_阿里云技术专家分享:现代 IM 系统中消息推送和存储架构的实现...
  9. delve 调试带参数_带你学够浪:Go语言基础系列-环境配置和 Hello world
  10. 360浏览器查看html文件在哪里,360浏览器8菜单栏怎么弄出来?如何查看网站源代码...