🎯 今日目标
- 巩固列表、字典、条件、循环等基础知识
- 练习程序结构设计和模块拆解能力
- 完成一个小型终端项目:学生信息管理系统
🗂️ 项目说明
该系统具有以下功能:
- 添加学生信息(姓名、年龄、成绩)
- 显示所有学生信息
- 查询指定学生
- 删除学生信息
- 退出系统
📋 示例界面效果
==== 学生信息管理系统 ====
1. 添加学生
2. 查看所有学生
3. 查询学生
4. 删除学生
5. 退出系统
请输入操作编号(1-5):
💡 操作建议
- 运行程序后,输入数字 1 开始添加学生信息;
- 输入 2 可以查看已添加的所有学生;
- 输入 3 查询某个学生的详细信息;
- 输入 4 删除某位学生;
- 输入 5 退出程序。
🧱 示例代码
students = []
while True:
print("\n==== 学生信息管理系统 ====")
print("1. 添加学生")
print("2. 查看所有学生")
print("3. 查询学生")
print("4. 删除学生")
print("5. 退出系统")
choice = input("请输入操作编号(1-5):")
if choice == "1":
name = input("请输入姓名:")
age = int(input("请输入年龄:"))
score = float(input("请输入成绩:"))
student = {"name": name, "age": age, "score": score}
students.append(student)
print("✅ 添加成功!")
elif choice == "2":
if not students:
print("📭 当前无学生信息")
else:
print("📋 所有学生信息:")
for s in students:
print(f"姓名: {s['name']} | 年龄: {s['age']} | 成绩: {s['score']}")
elif choice == "3":
search_name = input("请输入要查询的姓名:")
found = False
for s in students:
if s["name"] == search_name:
print(f"🎯 找到:年龄: {s['age']} | 成绩: {s['score']}")
found = True
break
if not found:
print("❌ 没有找到该学生。")
elif choice == "4":
del_name = input("请输入要删除的姓名:")
for s in students:
if s["name"] == del_name:
students.remove(s)
print("🗑️ 删除成功!")
break
else:
print("❌ 没有找到该学生。")
elif choice == "5":
print("👋 再见!感谢使用学生信息管理系统!")
break
else:
print("⚠️ 输入错误,请重新选择。")
输出结果为:
==== 学生信息管理系统 ====
1. 添加学生
2. 查看所有学生
3. 查询学生
4. 删除学生
5. 退出系统
请输入操作编号(1-5):1
请输入姓名:Sally
请输入年龄:22
请输入成绩:90
✅ 添加成功!
==== 学生信息管理系统 ====
1. 添加学生
2. 查看所有学生
3. 查询学生
4. 删除学生
5. 退出系统
请输入操作编号(1-5):2
📋 所有学生信息:
姓名: Sally | 年龄: 22 | 成绩: 90.0
==== 学生信息管理系统 ====
1. 添加学生
2. 查看所有学生
3. 查询学生
4. 删除学生
5. 退出系统
请输入操作编号(1-5):3
请输入要查询的姓名:Sally
🎯 找到:年龄: 22 | 成绩: 90.0
==== 学生信息管理系统 ====
1. 添加学生
2. 查看所有学生
3. 查询学生
4. 删除学生
5. 退出系统
请输入操作编号(1-5):4
请输入要删除的姓名:Sally
🗑️ 删除成功!
==== 学生信息管理系统 ====
1. 添加学生
2. 查看所有学生
3. 查询学生
4. 删除学生
5. 退出系统
请输入操作编号(1-5):5
👋 再见!感谢使用学生信息管理系统!
🔁 建议你练习的变式功能
- 学生成绩排序显示(高到低)
- 修改指定学生信息
- 将信息保存到文本文件中(以后学习文件处理时扩展)
- 增加性别字段,或者支持多个字段的搜索
students = []
def add_student():
name = input("请输入姓名:")
age = input("请输入年龄:")
gender = input("请输入性别(男/女):")
score = input("请输入成绩:")
student = {"name": name, "age": age, "gender": gender, "score": score}
students.append(student)
print("添加成功")
def show_students():
if not students:
print("📭 当前无学生信息")
else:
sorted_students = sorted(students, key = lambda s : s['score'], reverse = True)
print("📋 学生信息(按成绩降序):")
for s in sorted_students:
print(f"姓名: {s['name']} | 年龄: {s['age']} | 性别: {s['gender']} | 成绩: {s['score']}")
def search_student():
keyword = input("请输入要查询的姓名或性别:")
found = False
for s in students:
if s["name"] == keyword or s["gender"] == keyword:
print(f"🎯 找到:姓名: {s['name']} | 年龄: {s['age']} | 性别: {s['gender']} | 成绩: {s['score']}")
found = True
if not found:
print("❌ 没有找到匹配的学生。")
def delete_student():
del_name = input("请输入要删除的学生姓名:")
for s in students:
if s["name"] == del_name:
students.remove(s)
print("🗑️ 删除成功!")
return
print("❌ 没有找到该学生。")
def update_student():
name = input("请输入要修改的学生姓名:")
for s in students:
if s["name"] == name:
print(f"当前信息:年龄: {s['age']} | 性别: {s['gender']} | 成绩: {s['score']}")
s["age"] = int(input("请输入新的年龄:"))
s["gender"] = input("请输入新的性别:")
s["score"] = float(input("请输入新的成绩:"))
print("✅ 修改成功!")
return
print("❌ 没有找到该学生。")
def save_to_file():
with open("students.txt", "w", encoding="utf-8") as f:
for s in students:
line = f"{s['name']},{s['age']},{s['gender']},{s['score']}\n"
f.write(line)
print("💾 信息已保存到 students.txt 文件")
# 主程序入口
while True:
print("\n==== 🧠 学生信息管理系统(进阶版) ====")
print("1. 添加学生")
print("2. 查看所有学生(按成绩排序)")
print("3. 查询学生(按姓名/性别)")
print("4. 删除学生")
print("5. 修改学生信息")
print("6. 保存信息到文件")
print("7. 退出系统")
choice = input("请输入操作编号(1-7):")
if choice == "1":
add_student()
elif choice == "2":
show_students()
elif choice == "3":
search_student()
elif choice == "4":
delete_student()
elif choice == "5":
update_student()
elif choice == "6":
save_to_file()
elif choice == "7":
print("👋 再见!感谢使用学生信息管理系统!")
break
else:
print("⚠️ 输入有误,请重新选择。")
输出结果为:
1.添加学生
==== 🧠 学生信息管理系统(进阶版) ====
1. 添加学生
2. 查看所有学生(按成绩排序)
3. 查询学生(按姓名/性别)
4. 删除学生
5. 修改学生信息
6. 保存信息到文件
7. 退出系统
请输入操作编号(1-7):1
请输入姓名:Sally
请输入年龄:23
请输入性别(男/女):男
请输入成绩:90
添加成功
==== 🧠 学生信息管理系统(进阶版) ====
1. 添加学生
2. 查看所有学生(按成绩排序)
3. 查询学生(按姓名/性别)
4. 删除学生
5. 修改学生信息
6. 保存信息到文件
7. 退出系统
请输入操作编号(1-7):1
请输入姓名:Tom
请输入年龄:22
请输入性别(男/女):女
请输入成绩:99
添加成功
2.查看所有学生(按成绩排序)
==== 🧠 学生信息管理系统(进阶版) ====
1. 添加学生
2. 查看所有学生(按成绩排序)
3. 查询学生(按姓名/性别)
4. 删除学生
5. 修改学生信息
6. 保存信息到文件
7. 退出系统
请输入操作编号(1-7):2
📋 学生信息(按成绩降序):
姓名: Tom | 年龄: 22 | 性别: 女 | 成绩: 99
姓名: Sally | 年龄: 23 | 性别: 男 | 成绩: 90
3.查询学生(按姓名/性别)
==== 🧠 学生信息管理系统(进阶版) ====
1. 添加学生
2. 查看所有学生(按成绩排序)
3. 查询学生(按姓名/性别)
4. 删除学生
5. 修改学生信息
6. 保存信息到文件
7. 退出系统
请输入操作编号(1-7):3
请输入要查询的姓名或性别:Sally
🎯 找到:姓名: Sally | 年龄: 23 | 性别: 男 | 成绩: 90
==== 🧠 学生信息管理系统(进阶版) ====
1. 添加学生
2. 查看所有学生(按成绩排序)
3. 查询学生(按姓名/性别)
4. 删除学生
5. 修改学生信息
6. 保存信息到文件
7. 退出系统
请输入操作编号(1-7):3
请输入要查询的姓名或性别:Tom
🎯 找到:姓名: Tom | 年龄: 22 | 性别: 女 | 成绩: 99
5.修改学生信息
==== 🧠 学生信息管理系统(进阶版) ====
1. 添加学生
2. 查看所有学生(按成绩排序)
3. 查询学生(按姓名/性别)
4. 删除学生
5. 修改学生信息
6. 保存信息到文件
7. 退出系统
请输入操作编号(1-7):5
请输入要修改的学生姓名:Sally
当前信息:年龄: 23 | 性别: 男 | 成绩: 90
请输入新的年龄:23
请输入新的性别:女
请输入新的成绩:90
✅ 修改成功!
==== 🧠 学生信息管理系统(进阶版) ====
1. 添加学生
2. 查看所有学生(按成绩排序)
3. 查询学生(按姓名/性别)
4. 删除学生
5. 修改学生信息
6. 保存信息到文件
7. 退出系统
请输入操作编号(1-7):5
请输入要修改的学生姓名:Tom
当前信息:年龄: 22 | 性别: 女 | 成绩: 99
请输入新的年龄:22
请输入新的性别:男
请输入新的成绩:99
✅ 修改成功!
6.保存信息到文件
==== 🧠 学生信息管理系统(进阶版) ====
1. 添加学生
2. 查看所有学生(按成绩排序)
3. 查询学生(按姓名/性别)
4. 删除学生
5. 修改学生信息
6. 保存信息到文件
7. 退出系统
请输入操作编号(1-7):6
💾 信息已保存到 students.txt 文件
保存的students.txt文件:
4.删除学生:
==== 🧠 学生信息管理系统(进阶版) ====
1. 添加学生
2. 查看所有学生(按成绩排序)
3. 查询学生(按姓名/性别)
4. 删除学生
5. 修改学生信息
6. 保存信息到文件
7. 退出系统
请输入操作编号(1-7):4
请输入要删除的学生姓名:Sally
🗑️ 删除成功!
✅ 今日小结
通过这个项目,你将:
- 熟悉基本的 CRUD(增删改查)逻辑
- 巩固 dict 与 list 的组合使用
- 增强对输入判断、循环控制的理解