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()运行输出:

老师好,为什么我这里没有将 ‘小白’添加到学生信息库内?
1回答
好帮手慕小猿
2024-01-17
同学,你好!同学向add_student方法中传关键字参数是class_number字段

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

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

祝学习愉快~
相似问题