添加学生信息
首先是查找students列表中是否已经存在学生信息,通过ID查找,如果存在,则提示存在,否则输入学生信息,将学生信息存放在一个列表字典内
def add_student(students:list):
#通过ID判断是否存在
id = int(input("请输入学生ID:"))
if id == 0:
return
#添加学生信息
student_exists = False # 初始化一个布尔变量,用来标记学生ID是否存在
for student in students:
#
if 'ID' in student and student['ID'] == id:# 检查当前学生记录是否包含 'ID' 键,并且值与给定的 id 是否相等
print("学生ID已经存在,添加不成功")
student_exists = True # 设置 student_exists 为 True,表示找到了匹配的学生ID
break
# 如果 student_exists 仍然是 False,表示没有找到匹配的学生ID
if not student_exists:
students_information = {}
name = input("请输入学生姓名:")
sex = input("请输入学生性别:")
age = int(input("请输入学生年龄:"))
telephone = input("请输入学生电话:")
email = input("请输入学生邮箱:")
address = input("请输入学生地址:")
#将输入信息插入到学生信息字典中
students_information['ID'] =id
students_information['name'] =name
students_information['sex'] =sex
students_information['age'] =age
students_information['telephone'] =telephone
students_information['email'] =email
students_information['address'] = address
#将学生信息字典作为元素插入到学生列表中
students.append(students_information)
print('添加成功')
return students
保存学生信息
将学生列表中的学生信息写入到文档中进行保存
def save(students:list):
with open('students.txt','w',encoding='utf-8') as f:
for i in students:
f.write(str(i)+'\n')
print('保存成功')
return
查找学生信息
def show_student(students:list):
#通过ID判断是否存在
id = int(input("请输入要查找的学生ID:"))
if id == 0:
return
student_exists = False
#查找学生信息
for i in students:
if 'ID' in i and i['ID'] != id:
print("不存在ID,查找不成功")
student_exists = True
return
if not student_exists:
#从一个名为 students 的列表中筛选出所有具有特定 id 的学生记录,并将这些记录存储到一个新的列表 found_students 中。
found_students = [student for student in students if student['ID'] == id]
print(found_students)
return 0
修改学生信息
def change_student(students:list):
id = int(input("请输入要修改的学生ID:"))
while True:
if id == 0:
return
#遍历学生列表,通过ID查找学生信息,并进行修改
for i in range(len(students)):
if students[i]['ID'] == id:
print(students[i])
students[i]['ID'] = int(input("请输入新的ID:"))
students[i]['name'] = input("请输入新的姓名:")
students[i]['sex'] = input("请输入新的性别:")
students[i]['age'] = int(input("请输入新的年龄:"))
students[i]['telephone'] = input("请输入新的电话:")
students[i]['email'] = input("请输入新的邮箱:")
students[i]['address'] = input("请输入新的地址:")
print("修改成功!")
return
else:
print("没有找到该学生!")
return 0
删除学生信息
def delete_student(students:list):
id = int(input("请输入要删除的学生ID:"))
while True:
#循环退出条件
if id == 0:
break
#删除学生信息
for i in students:
#通过ID判断是否存在
if 'ID' in i and i['ID'] == id:
student_remove = next((student for student in students if student['ID'] == id),None)
students.remove(student_remove)
print("删除成功!")
return
else:
print("不存在ID,删除不成功")
return 0
显示学生信息
def show_student_info():
#读取学生信息文件
with open("students.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip()) # 打印去除每行末尾空白字符(如空格和换行符)后的行内容
主函数
#主程序
def main():
while True:
print("""菜单:
1.添加学生信息
2.保存学生信息
3.查找学生信息
4.修改学生信息
5.删除学生信息
6.显示学生信息
0.退出
""")
input_num = int(input("请输入数字:"))
if input_num == 0:
print("已退出!")
break
elif input_num == 1:
print("1.添加学生信息")
print(add_student(students))
continue
elif input_num == 2:
print("2.保存学生信息")
print(save(students))
continue
elif input_num == 3:
print("3.查找学生信息")
show_student(students)
continue
elif input_num == 4:
print("4.修改学生信息")
change_student(students)
continue
elif input_num == 5:
print("5.删除学生信息")
delete_student(students)
continue
elif input_num == 6:
print("6.显示学生信息")
show_student_info()
continue
if __name__ == "__main__":
main()
简单的实现了最基本的增删改查功能,适合新手练习