• 2023年最适合0基础上手的—学生管理系统制作,另赠福利:GUI学生管理系统源码


    前言
    嗨喽~大家好呀,这里是小曼呐 ❤ ~!
    在这里插入图片描述
    环境使用:

    可领取福利:
    GUI学生管理系统源码

    在这里插入图片描述
    代码展示
    从学生信息数据库<文本文件>里面读取数据

    f = open('学生信息.txt', encoding='utf-8')
    info_list = f.readlines()
    
    • 1
    • 2

    创建一个空列表

    student_info = []
    
    • 1

    for循环遍历, 把列表里面元素一个一个提取出来

    遇到问题没人解答?可以加小曼vx:python10010 发送验证时记得备注 “M”噢(这样小曼才知道是我的粉丝哦)
    寻找有志同道合的小伙伴,互帮互助,还给大家准备了有不错的视频学习教程和PDF电子书!
    for info in info_list:
        """
        str.replace('\n', '') 字符串替换方法, 把\n替换成空的
        str.split(',') 字符串分割方法, 以 , 作为分割, 把字符串分割成列表
        """
        content = info.replace('\n', '').split(',')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    创建字典

        dit = {
            '姓名': content[0],
            '语文': content[1],
            '数学': content[2],
            '英语': content[3],
            '总分': content[4],
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    列表添加元素

        student_info.append(dit)
    
    • 1

    读取出来, 并且整理好数据内容, 列表数据容器, 把所有信息放到里面存储

    # print(student_info)
    
    • 1
    msg = """**************************************************
    欢迎使用【学生信息管理系统】V1.0
    请选择你想要进行的操作
    1. 新建学生信息
    2. 显示全部信息
    3. 查询学生信息
    4. 删除学生信息
    5. 修改学生信息
    
    0. 退出系统
    **************************************************"""
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    输出

    while True:
        print(msg)
        # 输入相关指令, 让代码执行相关程序 等号左边是自定义变量名
        num = input('请选择你要进行操作: ') # input输入内容, 返回字符串数据类型
        # 判断, 判断输入内容是什么?
        if num == '1':
            print('新建学生信息')
            # 输入学生姓名, 成绩
            name = input('请输入学生姓名:')
            chinese = input('请输入学生语文成绩:')
            math = input('请输入学生数学成绩:')
            english = input('请输入学生英语成绩:')
            # 字符串用 + 拼接
            score = int(chinese) + int(math) + int(english)
            student_dit = {
                '姓名': name,
                '语文': chinese,
                '数学': math,
                '英语': english,
                '总分': str(score),
            }
            # 添加学生信息, 放到数据库里面
            student_info.append(student_dit)
        # 会看报错的同学 1 不会看报错 0
        elif num == '2':
            print('显示全部信息')
            # 排序的
            student_info.sort(key=lambda x:x["总分"], reverse=True)
            # \t 转义字符 制表符 一个tab键
            print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
            for student in student_info:
                # student['姓名'] --> 字符串
                # student['语文'] --> 整型
                # student['总分'] --> 整型
                # 数据类型不同, 不能直接相加
                print(
                    student['姓名'] + '\t\t' +
                    str(student['语文']) + '\t\t\t' +
                    str(student['数学']) + '\t\t\t' +
                    str(student['英语']) + '\t\t\t' +
                    str(student['总分'])
                )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    查询学生信息

        elif num == '3':
            print('查询学生信息')
            # 输入查询人 --> 在一整个数据库里面一一对比
            name = input('请输入你要查询学生姓名: ')
            # for循环 一一提取数据内容
            for student in student_info:
                # 判断人名对不对
                if name == student['姓名']:
                    print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
                    print(
                        student['姓名'] + '\t\t' +
                        str(student['语文']) + '\t\t\t' +
                        str(student['数学']) + '\t\t\t' +
                        str(student['英语']) + '\t\t\t' +
                        str(student['总分'])
                    )
                    break
            else:
                print('找不到')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    删除学生信息

        elif num == '4':
            print('删除学生信息')
            name = input('请输入你要删除学生姓名: ')
            for student in student_info:
                if name == student['姓名']:
                    print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
                    print(
                        student['姓名'] + '\t\t' +
                        str(student['语文']) + '\t\t\t' +
                        str(student['数学']) + '\t\t\t' +
                        str(student['英语']) + '\t\t\t' +
                        str(student['总分'])
                    )
                    word = input('是否要真的开除这个学生, 不考虑一下吗? : ' )
                    if word == 'Y' or word == 'y':
                        # remove() 移除列表元素
                        student_info.remove(student)
                        break
                    elif word == 'N' or word == 'n':
                        break
                    else:
                        print('操作失误')
            else:
                print('找不到人')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    修改学生信息

        elif num == '5':
            print('修改学生信息')
            name = input('请输入你要删除学生姓名: ')
            for student in student_info:
                if name == student['姓名']:
                    print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
                    print(
                        student['姓名'] + '\t\t' +
                        str(student['语文']) + '\t\t\t' +
                        str(student['数学']) + '\t\t\t' +
                        str(student['英语']) + '\t\t\t' +
                        str(student['总分'])
                    )
                    word = input('就这, 成绩还有问题? : ')
                    if word == 'Y' or word == 'y':
                        # 输入学生姓名, 成绩
                        name = input('请输入学生姓名:')
                        chinese = input('请输入学生语文成绩:')
                        math = input('请输入学生数学成绩:')
                        english = input('请输入学生英语成绩:')
                        # 字符串用 + 拼接
                        score = int(chinese) + int(math) + int(english)
                        # 字典值修改
                        student['姓名'] = name
                        student['语文'] = chinese
                        student['数学'] = math
                        student['英语'] = english
                        student['总分'] = score
                        break
                    elif word == 'N' or word == 'n':
                        break
                    else:
                        print('操作失误')
            else:
                print('找不到人')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    退出系统

        elif num == '0':
            print('退出系统')
            # 退出的时候, 要做数据保存
            with open('学生信息.txt', mode='w', encoding='utf-8') as f:
                for student in student_info:
                    f.write(f'{student["姓名"]},{student["语文"]},{student["数学"]},{student["英语"]},{student["总分"]}')
                    f.write('\n')
            exit() # 退出
    
        else:
            print('输入有误')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    尾语
    最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

    希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

    夜色难免黑凉,前行必有曙光(让我们一起努力叭)
    在这里插入图片描述

  • 相关阅读:
    【仿真动画】ABB IRB 8700 机器人搬运(ruckig在线轨迹生成)动画欣赏
    极狐GitLab 如何重置管理员密码
    四六级成绩快速查询指南 & 项目上传github实现定时自动推送教程
    腾讯核心人员纯手写出这份JAVA面试全集总结,简直不要太香了!
    ArrayList与LinkedList区别
    【高数】高数平面立体几何
    「出海」势头正盛,中国车企需要更好的“全球导航”
    122. 买卖股票的最佳时机 II
    【论文阅读】AttnDreamBooth | 面向文本对齐的个性化图片生成
    vue使用外部的模板
  • 原文地址:https://blog.csdn.net/XM67_/article/details/132891524