练习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使用
689 0
honeycomb使用|学习笔记
|
数据采集 SQL 消息中间件
第三阶段总结|学习笔记
快速学习第三阶段总结
131 0
第三阶段总结|学习笔记
|
开发工具 Android开发 iOS开发
快速开始|学习笔记
快速学习快速开始
112 0
快速开始|学习笔记
|
数据可视化 Java 开发工具
超详细的vimtutor学习笔记(中)
第一讲 编辑 1.1 移动光标 使用 h、j、k、l 键可以使光标实现左、下、上、右的移动。 也可以使用 ↑ ↓ ← → 进行上下左右的移动。
106 0
|
缓存 Dubbo 应用服务中间件
本地存根|学习笔记
快速学习本地存根
本地存根|学习笔记
|
移动开发 JavaScript HTML5
NgForm学习笔记
NgForm学习笔记
148 0
NgForm学习笔记
|
人工智能 算法 开发者
SDV 要解决的问题 | 学习笔记
快速学习 SDV 要解决的问题
|
JSON 分布式计算 Hadoop
BoolQuery |学习笔记
快速学习 BoolQuery。
|
人工智能 NoSQL JavaScript
正则查询|学习笔记
快速学习正则查询
下一篇
无影云桌面