需求:
按照以下要求完成代码的编写
第一步:录入学生信息
1)提示用户在控制台输入3个学生的信息,学生信息包含姓名、年龄
2)要求:封装录入单个学生信息的函数,并返回学生的信息
第二步:展示学生列表信息
1)封装打印学生信息的函数,格式要求如右图:
第三步:统计学生总数
1)封装获取学生总数的函数,并对该函数进行调用和数据打印
第四步:查询学生信息
1)封装根据学生姓名查询学生信息的函数
2)提示用户“请输入要查询的学生姓名:”
3)如果存在,直接在控制台打印学生信息,格式为:“姓名:张三,年龄:25”
4)如果不存在,直接在控制台打印“对不起,名字叫【张三】的学生不存在”
如图
代码:
# 需求:按照以下要求完成代码的编写
# 第一步:录入学生信息
# 1)提示用户在控制台输入3个学生的信息,学生信息包含姓名、年龄
# 2)要求:封装录入单个学生信息的函数,并返回学生的信息
def input_student():
# 定义字典来保存学生信息
name = input("输入学生的姓名:")
age = input("输入学生的年龄:")
dict1 = {"name": name, "age": age} # 学生的信息用字典来存储
return dict1
# 第二步:展示学生列表信息
# 1)封装打印学生信息的函数,格式要求如右图:
def show_student(list_student):
print("------学生列表信息-------")
i = 1 # 记录学生序号
for student in list_student: # 遍历输出
print(f"{i}\t\t{student.get('name')}\t\t{student.get('age')}")
i += 1 # 序号加1
print("-----------------------")
# 第三步:统计学生总数
# 1)封装获取学生总数的函数,并对该函数进行调用和数据打印
def count_student(list_student):
return len(list_student) # 获取列表字典的长度 len()
# 第四步:查询学生信息
# 1)封装根据学生姓名查询学生信息的函数
# 2)提示用户“请输入要查询的学生姓名:”
# 3)如果存在,直接在控制台打印学生信息,格式为:“姓名:张三,年龄:25”
# 4)如果不存在,直接在控制台打印“对不起,名字叫【张三】的学生不存在”
"""
遍历学生信息,如果查到了,函数就结束
只能用 return
break continue 是跳出 for循环,不满足要求
"""
def query_student(list_student):
name = input("请输入要查询的学生姓名:")
for student in list_student:
if student.get('name') == name:
print(f"姓名:{student.get('name')},年龄:{student.get('age')}")
return
print(f"对不起,名字叫{name}的学生不存在") # 没有找到,必须放到循环的外面,
# 如果遍历完之后,没有查到学生,就输出没有找到
if __name__ == '__main__': # 函数的调用放到 main()
# 定义保存3个学生信息的数据
list_student = []
for i in range(3):
student = input_student()
list_student.append(student)
print(list_student) # 把3个学生的信息存储在列表中
# 调用打印学生信息函数 # 把列表数据传入函数,当做实参
show_student(list_student)
# 调用统计学生总数的函数
print(count_student(list_student))
# 查询学生信息
query_student(list_student)