练习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 依然是个无序的,只是对它进行排序得到一个新的列表。

相关文章
|
SQL 开发框架 JSON
honeycomb使用|学习笔记
快速学习honeycomb使用
709 0
honeycomb使用|学习笔记
|
开发者 索引
matchAllQuery | 学习笔记
快速学习 matchAllQuery
matchAllQuery | 学习笔记
|
NoSQL MongoDB 开发者
故障测试2|学习笔记
快速学习故障测试2
故障测试2|学习笔记
|
数据可视化 开发工具
超详细的vimtutor学习笔记(下)
第一讲 编辑 1.1 移动光标 使用 h、j、k、l 键可以使光标实现左、下、上、右的移动。 也可以使用 ↑ ↓ ← → 进行上下左右的移动。
96 0
|
C++ 开发者 Python
|
消息中间件 缓存 NoSQL
总结| 学习笔记
快速学习总结。
|
机器学习/深度学习 算法 Serverless
总结与回顾| 学习笔记
快速学习总结与回顾。
|
安全 Java 开发者
回顾 | 学习笔记
快速学习回顾,介绍了回顾系统机制, 以及在实际应用过程中如何使用。
|
开发者
SearchType 详解|学习笔记
快速学习 SearchType 详解。
260 0