(python)学生记录

【问题描述】
从键盘中读入最多不超过50个学生的学生信息(包括空格隔开的姓名、学号、年龄信息,以学号从低到高排序)
【输入形式】
每次键盘读入最多不超过50个学生的学生信息:
第一行为学生人数;
后面每一行为空格隔开的学生学号、姓名、年龄,其中学号和年龄都是整数。
【输出形式】
分别以姓名顺序(从低到高)和年龄顺序(从低到高)将学生信息输出,每行输出一位学生的信息,其中学号占3位,姓名(英文)占6位,年龄占3位,均为右对齐。年龄相同时按姓名从低到高排序。两种顺序的输出结果用一行空行相隔。
【输入样例】

4
1 aaa 22
45 bbb 23
54 ddd 20
110 ccc 19

【输出样例】     

  1   aaa 22        
 45   bbb 23      
110   ccc 19 
 54   ddd 20 
                                     
110   ccc 19        
 54   ddd 20         
  1   aaa 22        
 45   bbb 23

【样例说明】

从键盘输入四个学生记录,分别按姓名和年龄排序并输出。
【评分标准】
分别以姓名顺序和年龄顺序输出学生信息。

 

n = int(input())
#n人数
my_list = []
#创建一个主列表
for i in range(n):
    j = []#创建新列表并添加到主序列表中
    my_list.append(j)#将n个列表添加到主列表里面
    for i in range(1):
        a,b,c=map(str,input().split(' '))
        j.append(a)
        j.append(b)
        j.append(c)
my_list2=sorted(my_list,key=(lambda x:x[1]))#姓名排序排序
for i in range(n):
     print("%3s%6s%3s"%(my_list2[i][0],my_list2[i][1],my_list2[i][2]))
print("\n")
my_list3=sorted(my_list,key=(lambda x:x[2]))#年龄排序排序
for i in range(n):
    if n>=2:
        if my_list3[0][2] == my_list3[1][2]:
            print("%3s%6s%3s"%(my_list2[i][0],my_list2[i][1],my_list2[i][2])) 
        else:
            print("%3s%6s%3s"%(my_list3[i][0],my_list3[i][1],my_list3[i][2]))
    else:
        print("%3s%6s%3s"%(my_list2[i][0],my_list2[i][1],my_list2[i][2]))

说明:将上个程序改了下

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,我可以为您介绍一个简单的 Python 学生记录管理类的设计。 首先,我们需要定义一个学生类,其中包含学生的基本信息,例如姓名、年龄、性别、学号等等。下面是一个示例: ```python class Student: def __init__(self, name, age, gender, student_id): self.name = name self.age = age self.gender = gender self.student_id = student_id ``` 接下来,我们可以创建一个学生管理类,用于添加、删除和查找学生记录。在这个类中,我们可以使用列表来存储学生记录。下面是一个示例: ```python class StudentManager: def __init__(self): self.students = [] def add_student(self, student): self.students.append(student) def remove_student(self, student): self.students.remove(student) def get_student_by_id(self, student_id): for student in self.students: if student.student_id == student_id: return student return None def get_student_by_name(self, name): result = [] for student in self.students: if student.name == name: result.append(student) return result ``` 在上面的示例代码中,我们定义了一个 `StudentManager` 类,并实现了添加、删除和查找学生记录的功能。其中,`add_student` 和 `remove_student` 方法用于添加和删除学生记录,`get_student_by_id` 和 `get_student_by_name` 方法用于根据学号和姓名查找学生记录。 最后,我们可以使用这个学生管理类来管理学生记录。下面是一个示例: ```python manager = StudentManager() # 添加学生记录 s1 = Student("Tom", 18, "Male", "001") manager.add_student(s1) s2 = Student("Lucy", 19, "Female", "002") manager.add_student(s2) # 查找学生记录 print(manager.get_student_by_id("001")) print(manager.get_student_by_name("Lucy")) # 删除学生记录 manager.remove_student(s1) # 再次查找学生记录 print(manager.get_student_by_id("001")) ``` 这是一个简单的 Python 学生记录管理类的设计,您可以根据自己的需求进行修改和扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多庸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值