学习内容:
1)创建学生类 -- --数据:姓名,年龄,成绩,性别 -- --行为:在控制台中打印个人信息的方法 2)在控制台中循环录入学生信息,如果名称是空字符,退出录入 3)在控制台中输出每个学生信息(调用打印学生类的打印方法) 假设学生信息已存入列表list01中: list01=[Student("张三",20,90,"男"), Student("李四",22,85,"男"), Student("王舞",23,98,"女"), Student("赵六",24,60,"男"),] 4)定义函数,在list01中查找name是“王舞”的对象,将名称显示在控制台中 5)定义函数,在list01中查找所有男同学,将名称与年龄打印在控制台中 6)定义函数,在list01中查找年龄大于20的学生数量 7)定义函数,在list01中将所有的学生成绩归零 8)定义函数,在list01中查找年龄最大的学生对象,并返回其信息显示在控制台中。
代码实现:
class Student:
def __init__(self,name,age,grade,sex):
self.name = name
self.age =age
self.grade = grade
self.sex = sex
def print_infor(self):
print(stu_list)
list01 = [Student("张三", 20, 90, "男"),
Student("李四", 22, 85, "男"),
Student("王舞", 23, 98, "女"),
Student("赵六", 24, 60, "男"), ]
stu_list =[]
while True:
name = input("请输入学生姓名:")
if name == ' ':
break
age = int(input("请输入学生年龄:"))
grade = float(input("请输入学生成绩:"))
sex = input("请输入学生性别:")
student = Student(name, age, grade, sex)
stu_list.append(student)
def search_name(name):
a =0
for student in list01:
a+=1
if student.name ==name:
print("已找到:", student.name)
break
elif a ==4:
print("未找到")
def find_man():
for student in list01:
if student.sex =="男":
print(student.name,student.age)
def count_stu(age):
count = 0
for student in list01:
if student.age>age:
count+=1
return count
def zero():
for student in list01:
student.grade =0
print(student.name,student.age,student.grade,student.sex)
#使用Python的内置函数max()和index()来查找年龄最大的学生对象在列表中的索引,然后再通过索引获取该学生对象的信息并显示在控制台中
def oldest():
max_age = max([student.age for student in list01])
max_age_index = list01.index(next(student for student in list01 if student.age == max_age))
max_age_student = list01[max_age_index]
print("年龄最大的学生信息为:姓名:{},年龄:{},性别:{}".format(max_age_student.name, max_age_student.age,max_age_student.grade))
search_name("王")
find_man()
print(count_stu(20))
zero()
oldest()
总结:
类的实现相对来说比较难一些,出错概率很高,还需继续加强