Python实现学生成绩信息管理系统小程序

这篇博客介绍了一个使用Python实现的简单学生成绩管理程序。程序通过列表和字典存储学生信息,实现了添加、删除和查询学生成绩的功能。用户可以选择操作码执行相应功能,如添加新学生信息、删除指定学生信息或显示所有学生信息。博客还提供了完整的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

  今天使用序列数据(字典、列表、元组等)实现一个简单的学生成绩信息管理小程序,分享给大家,希望能够对你们有所帮助~

  郑重声明:本人目前仅在优快云这一个平台发布文章,其他小伙伴如果想转载 或者引用请注明引用来源,未经许可不得直接搬运,请尊重创作人的劳动成果,谢谢!(唉,我这么一个小菜鸡居然还有人搬运,还望搬运大佬手下留情~)

在这里插入图片描述

一、需求分析

1.建立可选菜单能够选择添加信息、删除信息、查询信息和退出系统等功能
2.实现添加学生成绩信息
3.实现删除学生成绩信息
4.实现查询学生成绩信息
5.实现退出系统

下面带大家看一下最终的展示效果:

在这里插入图片描述

二、编程思路

  对于一个成绩单我们使用一个名为infos的列表存储,列表的每一项包括同学的姓名、成绩和分数。使用字典存储每一个同学的成绩。

三、实现过程

  首先定义存储所有成绩的列表和存储每个学生信息的字典。

infos=[]#成绩列表的集合
person_info={"姓名":"","python":"","英语":""}##字典存储个人信息

1.添加学生信息

  每个学生的信息存在一个字典中,因此增加信息的过程即是遍历字典的项,并为每项增加值的过程。

def addInfo():#添加学生信息
    for key,value in person_info.items():
#Python 字典 items() 方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回可遍历的(键, 值) 元组数组。
        if key=="姓名":
            person_info[key]=input("请输入[%s]:"%(key))
        else:
            person_info[key] = input("请输入[%s]课程的成绩:" % (key))
    infos.append(person_info.copy())#将学生成绩信息放入列表中

2.显示学生信息

  显示信息的时候首先要判断列表是否为空,如果不为空的话,我们进行下边的操作。定义一个标志位去判断表头是否被打印出来了,最后打印学生信息。

def displayInfo():#显示学生信息
    if len(infos)==0:#列表为空
        print("当前还没有学生信息")
    else:
        #显示列表中的数据
        flag=False #未显示表头
        for info in infos:
            if flag==False: #打印表头
                for key in info.keys():
                    print("%-15s"%(key),end='')#格式化输出,右缩进15个字符
                print("\n*************************************")
                flag=True#已经打印过表头
            for value in info.values():
                print("%-15s"%(value),end='')
            print()

3.删除学生信息

  和上边查询类似先判断列表是否为空,不为空时输入要删除的学生姓名(用一个name变量接收这个值),删除的过程即是对字典的键进行访问,如果name变量接收的值与字典中的姓名值相同那么就在列表中删除该项。

def delInfo():#删除学生信息
    if len(infos) == 0:  # 列表为空
        print("当前还没有学生信息")
    else:
        name = input("请输入要删除的学生姓名:")
        i=0 ##保存已删除的行数
        for info in infos:
            if name == info["姓名"]:
                infos.remove(info)#如果存在,就将该列表项从列表的集合中删除
                i=i+1 #记录已经删除的条目数
        if i==0:
            print(name,"查无此人!",end="\n")
        else:
            print("删除成功")

以上就是本程序的核心函数,为了实现多次增删查功能,我们还需要定义一个功能菜单,并用while循环将所有函数写进去,完整代码在下边给出。

四、完整代码

infos=[]#成绩列表的集合
person_info={"姓名":"","python":"","英语":""}##字典存储个人信息
menustr="""
----------------------成绩管理----------------------
    1.添加学生成绩信息(姓名、成绩)
    2.删除学生成绩信息
    3.查询所有学生成绩
    0.退出系统
"""

def outputMenu():
    print(menustr)
def addInfo():#添加学生信息
    for key,value in person_info.items():
#Python 字典 items() 方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回可遍历的(键, 值) 元组数组。
        if key=="姓名":
            person_info[key]=input("请输入[%s]:"%(key))
        else:
            person_info[key] = input("请输入[%s]课程的成绩:" % (key))
    infos.append(person_info.copy())#将学生成绩信息放入列表中
def displayInfo():#显示学生信息
    if len(infos)==0:#列表为空
        print("当前还没有学生信息")
    else:
        #显示列表中的数据
        flag=False #未显示表头
        for info in infos:
            if flag==False: #打印表头
                for key in info.keys():
                    print("%-15s"%(key),end='')#格式化输出,右缩进15个字符
                print("\n*************************************")
                flag=True#已经打印过表头
            for value in info.values():
                print("%-15s"%(value),end='')
            print()

def delInfo():#删除学生信息
    if len(infos) == 0:  # 列表为空
        print("当前还没有学生信息")
    else:
        name = input("请输入要删除的学生姓名:")
        i=0 ##保存已删除的行数
        for info in infos:
            if name == info["姓名"]:
                infos.remove(info)#如果存在,就将该列表项从列表的集合中删除
                i=i+1 #记录已经删除的条目数
        if i==0:
            print(name,"查无此人!",end="\n")
        else:
            print("删除成功")

while True:
    outputMenu()
    code=input("请输入操作码")
    if code=='1':
        addInfo()
    elif code=='2':
        delInfo()
    elif code=='3':
        displayInfo()
    elif code=='0':
        print("程序结束!")
        break
    else:
        print("您输入的操作码有误,请重新输入")

引用源自

中国MOOC Python编程基础 https://www.icourse163.org/course/HBRJ-1206206801

  本篇完,如有错误欢迎指出~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我敲的贼快

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

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

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

打赏作者

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

抵扣说明:

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

余额充值