前言:
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦
python中函数的练习实例-学生信息库
由于我们还没有学习数据库和文件存储读取,我们先将学生的信息写入一个字典变量中:
students = {
1: {'name': 'xiaoming',
'age': 18,
'sex': 'boy',
'class_number': 'A'
},
2: {'name': 'xiaobai',
'age': 19,
'sex': 'girl',
'class_number': 'B'
},
3: {'name': 'xiaokuai',
'age': 18,
'sex': 'boy',
'class_number': 'A'
},
4: {'name': 'xiaoman',
'age': 18,
'sex': 'girl',
'class_number': 'C'
}
}
获取全部学生信息
定义一个函数,用来返回全部的学生信息:
# 获取全部学生信息
def get_all_students():
for id_, value in students.items():
print('学号:{} 姓名:{} 年龄:{} 性别:{} 班级:{}'.format(
id_, value['name'], value['age'], value['sex'], value['class_number']))
return students
get_all_students()
新增学生
定义一个函数,用来向学生信息库中新增学生
# 新增学生
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_number' not in kwargs:
print('缺少学生班级')
return
id_ = max(students.keys()) + 1 # 定义新增的学生学号
students[id_] = kwargs
add_student(name='xiaogao', age=17, sex='girl', class_number='B')
删除学生
定义一个函数,用来删除学生信息库中的学生
def delete_student(student_id):
if student_id not in students.keys():
print('不存在这个学号{}的学生'.format(student_id))
return
students.pop(student_id)
delete_student(2)
根据学号查找学生
定义一个函数,用来根据学号在学生信息库查找学生
def search_student_by_id(student_id):
if student_id not in students.keys():
print('不存在这个学号{}的学生'.format(student_id))
return
print(students[student_id])
print('--------')
search_student_by_id(3)
关键字查找学生
定义一个函数,用来根据关键字在学生信息库查找学生
def search_students(**kwargs):
values = list(students.values())
result = [] # 为查询出来的结果定义一个空列表
for item in values:
if 'name' in kwargs:
if kwargs['name'] == item['name']:
result.append(item)
elif 'age' in kwargs:
if kwargs['age'] == item['age']:
result.append(item)
elif 'sex' in kwargs:
if kwargs['sex'] == item['sex']:
result.append(item)
elif 'class_number' in kwargs:
if kwargs['class_number'] == item['class_number']:
result.append(item)
else:
return None
return result