7-1 为何不能添加学生

来源:7-1 【案例】实现学生信息库

weixin_慕慕0271488

2024-01-17 11:56:11

#学生信息库
#定义一个基本的学生信息库,以学号作为索引

students={
    1:{
        'name':'dewei',
        'age':33,
        'class_number':'A',
        'sex':'boy'
    },
    2:{
        'name':'xiaomu',
        'age':10,
        'class_number':'B',
        'sex':'boy'
    },
   3:{
        'name':'小曼',
        'age':18,
        'class_number':'A',

                'sex':'girl'
    },
      4:{
        'name':'小高',
        'age':18,
        'class_number':'C',
        'sex':'boy'
    },
         5:{
        'name':'小云',
        'age':18,
        'class_number':'B',
        'sex':'girl'
    }
}

def get_all_students():
    for id_, value in students.items():
        print(f"学号:{id_},姓名:{value['name']},年龄:{value['age']},班级:{value['class_number']},性别:{value['class_number']}")
    return students

# result=get_all_students()
# print('\n---',result)

#写一个添加学生的函数,使用可变参数
def add_student(**kwargs):
    if 'name' not in kwargs:
        print('没有发现学生姓名')
        return
    if 'age' not in kwargs:
        print('没有发现学生年龄')
        return
    if 'sex' not in kwargs:
        print('没有发现学生性别')
        return
    if 'class' not in kwargs:
        print('没有发现学生班级')
        return
    #设置新同学的新学号,不用length是因为有可能有退学,长度更改了但学号没更改。
    id_= max(students)+1

    students[id_]={
        'name':kwargs['name'],
        'age':kwargs['age'],
        'sex':kwargs['sex'],
        'class_number':kwargs['class_number'],
    }

add_student(name='小白',age=19,class_number='A',sex='boy')

get_all_students()

运行输出:

https://img1.sycdn.imooc.com/climg/65a74fba09b703ae06360267.jpg

老师好,为什么我这里没有将 ‘小白’添加到学生信息库内?

写回答

1回答

好帮手慕小猿

2024-01-17

同学,你好!同学向add_student方法中传关键字参数是class_number字段

https://img1.sycdn.imooc.com/climg/65a7b4c0099355f705660044.jpg

在add_student方法中使用if "class" not in kwargs 进行判断,因kwargs中有class_number 没有class ,所以if 条件为真,执行return 语句。函数返回值,后续66行后的代码不执行,所以无法添加成功。

https://img1.sycdn.imooc.com/climg/65a7b40109a7d91307600351.jpg

同学将class 改为class_number 就可以成功添加学生信息的。

https://img1.sycdn.imooc.com/climg/65a7b1f90905210606650149.jpg

祝学习愉快~

0

0 学习 · 4470 问题

查看课程