python基础练习7


学习内容:

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()

总结:

类的实现相对来说比较难一些,出错概率很高,还需继续加强

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值