一条蛇 2021-11-08 23:56 采纳率: 0%
浏览 31

问问,这个问题出在哪?如何解决啊


'''
(1)显示学生名单。按“1“查询学生信息:如果存在,显示学生姓名和学号;如果不存在任何学生信息,则提示“学生名单为空”。
(2)查询学生信息。按“2“查询学生信息:如果存在,输出学生信息;如果不存在,提示是否新建学生信息。
(3)插入新的学生信息。按“3“查询学生信息:如果存在,提示是否更新学生信息;如果不存在,提示输入学号,并在字典中插入(新建)新学生信息。
(4)删除已有学生。按“4“进行删除操作:如果不存在,输出“该学生不存在”;如果存在,从字典中删除,并输出信息。
(5)退出。按“0“保存学生字典到文件中,退出循环.
'''

import json


def menu():
    print("=" * 30)
    print("*" * 5 + "学生姓名学号管理系统" + "*" * 5)
    print("1.显示学生名单")
    print("2.查询学生信息")
    print("3.插入新的学生信息")
    print("4.删除已有学生")
    print("0.退出")
    print("=" * 30)


data = []


def show_data():
    # 1.读取文件
    # data = {}
    with open(r"E:\python程序设计基础\student.txt", encoding="utf-8") as f:
        for line in f:
            (key, val) = line.split()
            data[key] = val
    print(data)      #文件转化为字典并输出
    if data:
        for key in data:
            print("姓名:", key, "     学号:", data[key])
    else:
        print("学生名单为空")


def search_data():
    # 2.查询学生信息
    global data
    search_ID = input("请输入你要查询学生的学号:")
    for key in data:
        if key['ID'] == search_ID:
            print("找到学生信息如下:")
            print("姓名:", key, "     学号:", data[key])
            break
    else:
        print("该学生不存在,是否新建学生信息?")
        Anser = input("yes or no?")
        if Anser == "yes":
            dataStu = {'name': input("请输入新建学生姓名:"), 'ID': input("请输入新建学生学号:")}
            data.update(dataStu)


def add_data():
    # 3.新建学生信息
    global data
    new_ID = input("请输入新建学生的学号:")
    new_name = input("请输入新建学生的姓名:")
    for key in data:
        if key["ID"] == new_ID:
            print("该学生存在,是否更新学生信息?")
            anser = input("yes or no?")
            if anser == "yes":
                i['name'] = input("请输入更新后的姓名:")
                i['ID'] = input("请输入更新后的学号:")
                break
    else:
        # 建立空字典,字典新增数据
        add_data = {'name': new_name, 'ID': new_ID}
        data.update(add_data)
        # print(data)


def del_data():
    # 4.删除已有学生
    global data
    del_ID = input("请输入要删除的学生学号:")
    for key in data:
        if key['ID'] == del_ID:
            del key[i]
            break
    else:
        print("该学生不存在")
    print(data)


def main():
    while True:
        # 1.打印工程
        menu()
        # 2.获取用户的选择
        key = int(input("请输入你要选择的操作:"))
        # 3.根据用户的选择,作出相应的事件
        if key == 1:
            show_data()
        elif key == 2:
            search_data()
        elif key == 3:
            add_data()
        elif key == 4:
            del_data()
        elif key == 0:
            with open("E:\python程序设计基础\student(1).txt", 'w') as f:
                data_1 = json.dumps(data, ensure_ascii=False)
                f.write(data_1)
                break
        else:
            print("输入有误!!!")


main()

  • 写回答

2条回答 默认 最新

  • 关注

    贴一下是运行到什么地方,报了什么错误呢
    我这边没有对应文件无法完整复现

    评论

报告相同问题?

问题事件

  • 创建了问题 11月8日

悬赏问题

  • ¥15 机器学习预测遇到的目标函数问题
  • ¥15 python的EOFError该怎么解决?
  • ¥15 Fluent,液体进入旋转区域体积分数不连续
  • ¥15 java linux下将docx文件转pdf
  • ¥15 maven无法下载依赖包
  • ¥15 关于pycharm, Callable[[str],bool]作为方法参数使用时, lambda 类型不提示问题
  • ¥15 layui数据重载无效
  • ¥15 寻找了解qq家园纵横四海的程序猿。
  • ¥15 optisystem
  • ¥15 VB.NET画图时的撤销编程