python用字典设计一个程序录入学生课业的提交情况

''' 用字典设计一个程序录入学生课业情况。如:
{'国贸一班': {'20200322': '未交', '20200401': '已交'} , '金融二班': {'20200322': '已交', '20200401': '已交'}}
'''
将改题目分解为两部分
1.课业情况的录入。
需要录入的信息有班级名称、学号、课业提交情况。
2.对已录入数据的操作。
能进行的操作有:查看各个班级的课业情况,对已经录入的信息进行修改


'''由题意,该字典的key为班级,
我们假设需要录入的总班级数量是n个
对应的value为记录班级课业的字典'''
total_Info={}#总字典
stu_Info={}#记录课业的字典,其为stuNum:status

n=int(input('请输入需要录入课业情况的班级总数n='))
for i in range(0,n):
    class_name=input('请挨个输入需要录入课业情况的班级名:')
    total_Info[class_name]=i


for x in range(0,n):#循环n次顺序录入n个班级的课业情况
    
    name=input('请输入需要录入成绩的班级:')
    m=int(input('请输入正在录入班级的总人数m:'))

    stuNum=[]
    state=[]#将学号和作 业状态先录为列表,方便储存
    tmp={}
    if name in total_Info.keys():
        for j in range(1,m+1):
           Num=input('请输入录入学生的学号:')
           stuNum.append(Num)
           S=input('该学生的作业提交情况(已交,未交):')
           state.append(S)
    else:
       total_Info[name]=1
       for j in range(1,m+1):
          Num=input('请输入录入学生的学号:')
          stuNum.append(Num)
          S=input('该学生的作业提交情况(已交,未交):')
          state.append(S)
    for a in range(0,m):#将储存好的列表元素抽出,转化为小字典
         tmp[stuNum[a]]=state[a]
         total_Info[name]=tmp
print('已录入成绩的为:',total_Info)
'''**以下为对已录入数据的操作阶段**'''
choice=input('请输入你的选择。1.查看一个班的学生课业情况2.录入该班级学生课业情况:')
if choice == '1':
    for k,v in total_Info.items():
         print('【%s】的课业情况是%s'%(k, v))
elif choice == '2':
    for i in range(3):
        class_name=input('班级名称:').strip()
        stuNum=input('学生学号:').strip()
        state=input('是否交课业:').strip()
        if class_name==''or stuNum==''or state=='':
            print('输入值不能为空')
        else:
            if class_name in total_Info:
                tmp={stuNum:state}
                total_Info[class_name].update(tmp)
                print('更新成功')
                break
            else:
                total_Info[class_name]={stuNum:state}
                print('成功')
                break
print(total_Info)

ps.做以上程序的时候只学了四节课的python,如若有改进的地方,希望大家指正。

img

由于csdn提示不允许出现zuo业两字,故全部替换为课业