学生管理系统

'''
1.分析数据结构
学生管理系统管理系统----->管理的是多个学生--->需要容器存储学生--->考虑使用那种容器
---->列表?字典?---->系统对应的大的容器是字典--->字典转给你的某一个key对应的值是所有的
学生(列表)---->每个学生是一个字典
{'students':[学生1(字典),学生2,学生3...]}
'''

# 声明所有的key值
key_all_student='students'# 所有学生
key_name='name'
key_age='age'
key_tel='tel'
key_id='id'
# 当前已经添加过的学生
num=0
# 系统容器
system_info={}
list1=[]
# 1.显示界面
while True:
    print('==========================')
    print('欢迎进入XXX学生管理系统')
    print('1.添加学生\n2.查看学生\n3.删除学生\n4.修改学生信息\n0.退出')
    print('==========================')
    input_value=input('请输入:')
    # ============退出系统===========
    if input_value=='0':
        break
    # ============添加学生============
    if input_value=='1':
        while True:
            num+=1
            print('添加学生')
            add_name=input('姓名:')
            add_age=input('年龄:')
            add_tel=input('电话:')
            # 产生学号
            add_id='py1805'+str(num).rjust(3,'0')
            #创建一个学生(一个学生就是一个字典)
            add_student={key_name:add_name,key_age:add_age,key_tel:add_tel,key_id:add_id}
            # 获取存学生的容器
            all_student=system_info.get(key_all_student)
            if all_student==None:
                all_student=[]
            # 添加学生
            all_student.append(add_student)
            system_info[key_all_student]=all_student
            print('添加学生%s成功'%(add_name))
            print(system_info)
            print('1.继续添加\n其他:返回上一层')
            add_input=input('>>>')
            if add_input!='1':
                break
            else:
                continue
        continue

    # ============查看学生============
    if input_value=='2':
        print('查看学生')
        print('1.查看所有的学生信息')
        print('2.根据学生姓名查看学生信息')
        print('3.根据学生学号查看学生信息')
        print('4.返回上一层')
        find_input=input('>>>')
        if find_input=='4':
            continue
        '''拿到所有的学生'''
        all_students = system_info.get(key_all_student)
        '''系统还没有添加过学生'''
        # or 和and的短路操作
        if (not all_students) or (not len(all_student)):
            print('系统中没有学生')
            continue
        # 查看所有学生信息
        if find_input=='1':
            '''有学生的时候'''
            for student in all_students:
                print('姓名:%s,年龄:%s,电话:%s,学号:%s'%\
                      (student[key_name],student[key_age],student[key_tel],\
                       student[key_id]))
        # 根据学生姓名查找
        elif find_input=='2':
            find_name=input('请输入要查看的学生的名字')
            flag=True#是否找不到学生
            for student in all_students:
                if find_name==student[key_name]:
                    print('姓名:%s,年龄:%s,电话:%s,学号:%s' % \
                          (student[key_name], student[key_age], student[key_tel], \
                           student[key_id]))
                    flag=False
            if flag:
                print('找不到该学生信息')
        # 根据学生学号查找
        elif find_input=='3':
            find_id = input('请输入要查看的学生的id')
            flag=True
            for student in all_students:
                if find_id == student[key_id]:
                    print('姓名:%s,年龄:%s,电话:%s,学号:%s' % \
                          (student[key_name], student[key_age], student[key_tel], \
                           student[key_id]))
                    flag=False
            if flag:
                print('找不到该学生信息')
        # 返回上一层
        else:
            pass
        continue
    # =============删除学生=============
    if input_value=='3':
        while True:
            print('1.按姓名删除学生')
            print('2.按学号删除学生')
            print('3.返回')
            del_input=input("请输入(1,2,3)")
            if del_input=='3':
                break
                # 把所有学生找出来
            all_students = system_info.get(key_all_student)
            if (not all_students) or (not len(all_students)):
                print('该系统没有学生')
                break
            if del_input=='1':
                list2=[]
                del_name=input('请输入要删除学生的姓名')
                for student in all_students:
                    if del_name==student[key_name]:
                        # 保存可能要删除的学生
                        list2.append(student)
                if not len(list2):
                    print('没有找到匹配的学生')
                    continue
                for x in range(len(list2)):
                    print(x,list2[x])
                del_num=int(input('请选择要删除的学生的编号:'))
                del_student=list2[del_num]
                system_info[key_all_student].remove(del_student)
            if del_input=='2':
                find_number=input('请输入要删除学生的学号')
                num=0
                for student in all_students[:]:
                    if find_number==student[key_id]:
                        all_students.remove(student)
                        num+=1
                if num==0:
                    print('没有找到匹配的学生')
                    continue
        continue
    # ===========修改学生信息============
    if input_value == '4':
        while True:
            print('1.按姓名修改学生')
            print('2.按学号修改学生')
            print('3.返回')
            all_students=system_info.get(key_all_student)
            if (not all_students) or (not len(all_students)):
                print('系统没有任何学生信息')
                break
            input_num=input('请选择查询方式:')
            if input_num=='1':
                find_name = input('请输入将要修改学生的名字:')
                list3=[]
                num8=0
                for student in all_students:
                    if find_name==student[key_name]:
                        list3.append(student)
                        num8+=1
                if num8==0:
                    print('没有找到匹配的学生:')
                    continue
                for x in range(len(list3)):
                    print(x,list3[x])
                find_num=int(input('请选择要修改的学生:'))
                while True:
                    find_type=input('请选择要修改的项')
                    values=input('请输入修改内容:')
                    num6=0
                    for student in all_students:
                        if student==list3[find_num]:
                            student[find_type]=values
                            print(all_students)
                            num6+=1
                    break
                    if num6==0:
                        print('没有找到匹配的项')
                        continue
            if input_num=='2':
                num7=0
                find_id = input('请输入将要修改学生的学号:')
                for student in all_students:
                    if student[key_id]==find_id:
                        print('已找到该学生:')
                        update_key=input('请输入修改项:')
                        update_value = input('请输入修改值:')
                        student[update_key]=update_value
                        print(all_students)
                        num7 += 1
                if num7==0:
                    print('没有找到匹配的学生')
                    continue
            if input_num=='3':
                break

        continue




结果:

D:\Python项目\Day5-练习和列表\code\venv\Scripts\python.exe D:/Python项目/Day7-函数/code/01-学生管理系统.py
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:1
添加学生
姓名:we
年龄:23
电话:34
添加学生we成功
{'students': [{'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}]}
1.继续添加
其他:返回上一层

1
添加学生
姓名:we
年龄:56
电话:67
添加学生we成功
{'students': [{'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}]}
1.继续添加
其他:返回上一层
1
添加学生
姓名:we
年龄:89
电话:90
添加学生we成功
{'students': [{'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]}
1.继续添加
其他:返回上一层
2
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
1
姓名:we,年龄:23,电话:34,学号:py1805001
姓名:we,年龄:56,电话:67,学号:py1805002
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
2
请输入要查看的学生的名字we
姓名:we,年龄:23,电话:34,学号:py1805001
姓名:we,年龄:56,电话:67,学号:py1805002
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
3
请输入要查看的学生的idpy1805003
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:3
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)3
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:4
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:1
请输入将要修改学生的名字:we
0 {'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}
1 {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}
2 {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}
请选择要修改的学生:0
请选择要修改的项age
请输入修改内容:32
[{'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:2
请输入将要修改学生的学号:py1805002
已找到该学生:
请输入修改项:age
请输入修改值:65
[{'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '65', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]
1.按姓名修改学生
2.按学号修改学生

2
请输入要查看的学生的名字we
姓名:we,年龄:23,电话:34,学号:py1805001
姓名:we,年龄:56,电话:67,学号:py1805002
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
>>>3
请输入要查看的学生的idpy1805003
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:3
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)3
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:4
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:1
请输入将要修改学生的名字:we
0 {'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}
1 {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}
2 {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}
请选择要修改的学生:0
请选择要修改的项age
请输入修改内容:32
[{'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:2
请输入将要修改学生的学号:py1805002
已找到该学生:
请输入修改项:age
请输入修改值:65
[{'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '65', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:3
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:3
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)1
请输入要删除学生的姓名we
0 {'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}
1 {'name': 'we', 'age': '65', 'tel': '67', 'id': 'py1805002'}
2 {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}
请选择要删除的学生的编号:0
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)2
请输入要删除学生的学号py1805003
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)3
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
1
姓名:we,年龄:65,电话:67,学号:py1805002
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:0

Process finished with exit code 0

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容