• 学生信息系统(json模块解决数据持久化)


    将学生管理的案例,学生信息由原来的只有姓名,拓展为包含,姓名,年龄,两个属性;完成对应的增、删、查、改,操作

    import json,os,time,sys
    student_list = []
    File_path = 'name.txt'
    #从文件中读取之前存储的数据(考虑是否有对应文件的问题,要做文件是否存在的判断),然后将读取到的数据存储到列表
    def dataRead(filepath):
        # 判断filepath这个路径对应的文件是否存在:
        if os.path.exists(filepath):
            print('找到提取文件')
            f1 = open(filepath,'r',encoding='utf-8')
            global student_list
            student_list = json.load(f1)
            print('学生信息',student_list)
            f1.close()
            print('读取数据成功')
        else:
            print('文件不存在')
    
    def addStudent():
    
        name = input('请输入学生姓名:')
        age = int(input('请输入学生年龄:'))
        stu_dict = {
            'name':name,
            'age':age
        }
        student_list.append(stu_dict)
        print('学生信息添加成功,1秒后自动返回主菜单
    
    
    ')
        time.sleep(1)
    
    def delStudent():
        name = input('请输入要删除的学生姓名:')
        for stu in student_list:
            if name == stu['name']:
                student_list.remove(stu)
                print('删除成功')
            else:
                print('该学生信息不存在')
    
    def updateStudent():
        name = input("请输入要修改的学生姓名:")
        for stu in student_list:
            if name == stu['name']:
                new_name = input("请输入修改后的姓名:")
                new_age = eval(input("请输入修改后的年龄:"))
                stu['name'] = new_name
                stu['age'] = new_age
                print('修改成功')
                break
        else:
            print('该学生信息不存在')
        # name = input('请输入要修改的学生姓名:')
        # age = int(input('请输入修改学生的年龄:'))
        # new_dict = {'name':name,'age':age}
        # if new_dict in student_list :
        #     index = student_list.index(new_dict)
        #
        #     new_name = input('请输入修改后的学生姓名:')
        #     new_age = int(input('请输入修改后的学生年龄:'))
        #
        #
        #     student_list[index]['name'] = new_name
        #     student_list[index]['age'] = new_age
        #     print('修改成功')
        # else:
        #
        #     print('该学生信息不存在')
    
    def queryStudent():
        name = input('请输入要查询的学生姓名:')
        for stu in student_list:
            if name == stu['name']:
                print('学生信息:',stu)
                break
        else:
    
            print('该学生信息不存在')
    
    def showAll():
        print('所有学生信息如下:')
        for stu in student_list:
            print('姓名:{},年龄:{}'.format(stu.get('name'),stu.get('age')))
    
    def systemExit():
        dataWrite(File_path)
        print('谢谢使用')
        sys.exit()
    
    #将列表中的数据写入文件
    def dataWrite(filepath):
        f = open(filepath,'w',encoding='utf-8')
        json.dump(student_list,f)
        f.close()
        print('数据写入成功')
    #从文件中加载数据
    dataRead(File_path)
    while True:
        print('1.添加学生')
        print('2.删除学生')
        print('3.修改学生')
        print('4.查询学生')
        print('5.展示所有')
        print('6.退出系统')
        num = input('请输入1-6的数字进入相应功能:')
        print('------'*6)
        if num == '1':
            addStudent()
        elif num == '2':
            delStudent()
        elif num == '3':
            updateStudent()
        elif num == '4':
            queryStudent()
        elif num == '5':
            showAll()
        elif num == '6':
            systemExit()
        else:
            print('输入有误')
  • 相关阅读:
    中文分词技术
    布隆过滤器(Bloom Filter)详解
    真正理解Mysql的四种隔离级别
    从内核文件系统看文件读写过程
    如何评价腾讯开源的消息中间件TubeMQ?
    零拷贝(Zero-copy)及其应用详解
    深入了解RabbitMQ
    (四)下载利器aria2
    (三)轻量级文件服务器filebrowser
    log4j 2整理
  • 原文地址:https://www.cnblogs.com/ilovepython/p/10794890.html
Copyright © 2020-2023  润新知