练习4|学习笔记

简介: 快速学习练习4

开发者学堂课程【Python 入门 2020年版练习4】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10414


练习4


内容简介:

一、使用列表存储学生

二、相关数据操作

 

题目:

学生类 Student:

属性:学号,姓名,年龄,性别,成绩

班级类 Grade:

属性:班级名称,班级中的学生【使用列表存储学生】

方法:

1.查看该班级中的所有学生的信息

2.查看指定学号的学生信息

3.查看班级中成绩不及格的学生信息

4.将班级中的学生按照成绩降序排序哈


一、使用列表存储学生信息

class Student(object):

#Student 类继承自 object

def _init_(self, number,name,age,gender,score) :

#定义学号、姓名、年龄、年级、分数。

self.number = number

self.name = nameself.age = age

self.gender = genderself.score = score

class Grade(object) :

#Grade 类继承自 object

def _init_(self, name,students ):

#定义名字、学生

self.name = name

self.students = students

def show_all(self):

#定义所有的信息继承 self

for student in self.students:

print('编号:{},姓名:{},年龄:{},性别:{},分数

{}'.format(self.number,self.name, self.age , self.gender, self. score))

#打印学生的所有信息,查看该班级中的所有学生的信息

def get_student_by_number(self, n):

for s in self.students:

if s.number == n:

return s

else:

return '用户未找到’

 

二、相关数据操作

1.把数据加入年级列表

如果数字以0开头,在 Python2里表示八进制,所以不能写以0开头的数据

下面任意编写五个学生信息

s1= Student(1,’zhangsan’,18,'male’,80)

s2 = Student(5,'李四',19,'male', 50)

s3 = Student( 10,'tony', 20,'male', 70)

s4 = Student(7, 'jack’, 18, 'female' , 90)

s5 = Student(4, ‘ henry', 19,’female' , 56)

g= Grade(‘中二班',[s1,s2, s3,s4, s5])

#创建一个班级,把上面五个学生放进去。

g.show_all()

#加入所有信息

2.查看班级中成绩不及格的学生信息

def failed_students(self):

#定义不及格的学生

result = filter(lambda student: student.score < 60,self.students)

#过滤分数小于60的元素,filter拿到的结果是一个可迭代对象。

for x in result:

print(x)

g.failed_students()

#调取不及格学生信息

运行结果:

编号:5,姓名:李四,年龄:19,性别:male,分数50

编号:4,姓名:henry ,年龄:19,性别:female,分数56

3.将班级中的学生按照成绩降序排序哈

def order_students(self):

self.students.sort(key=lambda s: s.score,reverse=True)

#self.students.sort()表示给数据排序,

for student in g.students:

print(student)

#直接修改成 self.students 属性,根据 s: s.score分数排序,reverse=True顺序为倒序,直接修改成 self.students

运行结果:

编号:7,姓名:jack,年龄:18,性别:female,分数90

编号:1,姓名:zhangsan,年龄:18,性别:male,分数80

编号:10,姓名:tony ,年龄:20,性别:male,分数70

编号:4,姓名:henry ,年龄:19,性别:female,分数56

编号:5,姓名:李四,年龄:19,性别:male,分数50

或者是

return sorted(self.students,key=1ambda s: s.score,reverse=True)

x=g.order_students( )

for student in x:

print(student)

第一种会修改数据直接将 g.students 数据修改成降序排列,第二种不会修改数据返回一个新的结果,新的结果是有序的

用函数拿到结果,得到新的结果再来排序,其实 g.students 依然是个无序的,只是对它进行排序得到一个新的列表。

相关文章
|
Kubernetes 网络协议 程序员
k8s 学习笔记 - LimitRange 限制范围
k8s 学习笔记 - LimitRange 限制范围
235 0
|
人工智能 安全
学习笔记7
人工智能课程
79 0
|
数据安全/隐私保护
【学习笔记之我要C】练习
【学习笔记之我要C】练习
72 0
|
算法 计算机视觉
OpenCV学习笔记--SIFT,SUFT
图像处理两大特征提取算法
139 0
|
C++ 开发者 Python
|
Java 开发者 Python
Self 的介绍 | 学习笔记
快速学习 Self 的介绍
Self 的介绍 | 学习笔记
|
SQL 分布式计算 资源调度
StreamSQL|学习笔记
快速学习 StreamSQL
StreamSQL|学习笔记
|
Java 数据安全/隐私保护 开发者
属性驱动 | 学习笔记
快速学习属性驱动,介绍了属性驱动系统机制, 以及在实际应用过程中如何使用。
|
人工智能 算法 开发者
SDV 要解决的问题 | 学习笔记
快速学习 SDV 要解决的问题
|
JSON 分布式计算 Hadoop
BoolQuery |学习笔记
快速学习 BoolQuery。