Python 实现学生成绩表的增添修改删除排序(字典)

主要利用Python字典的特性以及switch()函数

from collections import defaultdict
import sys

dic = {}
def case0():
    while True:
        s = input("请输入您要添加学生的信息内容:") #输入的格式为 线性代数:45....
        S = s.split(' ')
        #!? dic.setdefault(S[0],[S[1],S[2],S[3],S[4],S[5],S[6]])
        dic.setdefault(S[0],{'姓名':S[1],'性别':S[2],'高数':S[3],'线性代数':S[4],'概率论':S[5],'英语':S[6]})
        print(dic)
        button1 = input("是否要退出添加?若要退出请按q,继续修改当前学生请按c:")
        if button1=='q':
            break
        if button1=='c':
            continue

def case1():
    a = input("请输入您要修改学生的学号:")
    print("该生的信息情况如下:")
    print(dic[a]) #打印出修改学生的信息
    dic_1 = dic[a]
    while True: 
        change = input("请选择您要修改的内容————>/姓名/性别/高数/线性代数/概率论/英语/:")
        content =input("请输入您要修改的内容:")
        dic_1[change]=content
        print(dic_1)
        button2 = input("是否要退出修改?若要退出请按q,继续修改当前学生请按c:")
        if button2 =='q':
            break
        if button2 =='c':
            continue

def case2():
    e = input("请输入您要删除学生的学号:")
    print(dic[e])
    '''
    dic = {01:{.....}
           02:{.....}
           03:{.....}
           ...........}
    '''
    del dic[e]
    print("现在有如下学生信息:")
    print(dic)

def case3():
    print("接下来将按照高数的成绩对学生进行排序")
    sort1 = sorted(dic.items(),key=lambda x:x[1]['高数'])
    print(sort1)

def case4():
    print("接下来将按照学号对学生信息进行排序")
    sort2 = sorted(dic.items(),key=lambda x:x[0])
    print(sort2)

def default():
    print("选择错误!")
    
def exit():
    sys.exit()
     
print("============================================================================")
print("您好!请选择功能\n 0-添加学生信息\n 1-修改学生信息\n 2- 删除学生信息\n 3-对已经录入的学生信息按照高数成绩进行排序\n 4-按照学号进行排序\n q-退出程序")
print("============================================================================")
switch = {'0': case0,
         '1': case1,
         '2': case2,
         '3': case3,
         '4': case4,
         'q': exit }

#一直循环,直到按键退出
while True: 
    d= input("请输入你的选择:")  
    switch.get(d,default)()
    



    

版权声明:本文为weixin_45723524原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。