老爹疯狂厨房
125.32M · 2026-03-31
这类小项目虽然简单,但非常接近真实业务逻辑,是从“语法”迈向“小型应用”的第一步。
我们先把项目功能规划清楚,这比写代码更重要:
我们用字典表示一个学生:
{
"id": "2025001",
"name": "张三",
"score": 88
}
全部学生数据使用列表保存:
students = []
这个结构清晰、扩展性强,也方便序列化保存。
命令行程序最重要的就是菜单循环:
def show_menu():
print("n===== 学生成绩管理系统 =====")
print("1. 添加学生成绩")
print("2. 查看所有学生")
print("3. 查询学生")
print("4. 修改学生成绩")
print("5. 删除学生信息")
print("6. 保存数据")
print("7. 读取数据")
print("0. 退出系统")
看起来简单,但这是后续所有操作的“入口”。
下面给出完整的核心逻辑,代码结构清晰易懂。
def add_student(students):
sid = input("请输入学号:")
name = input("请输入姓名:")
score = int(input("请输入成绩:"))
students.append({"id": sid, "name": name, "score": score})
print("添加成功!")
def show_all(students):
if not students:
print("当前没有学生数据")
return
print("n--- 所有学生成绩 ---")
for stu in students:
print(f"学号:{stu['id']},姓名:{stu['name']},成绩:{stu['score']}")
def find_student(students):
sid = input("请输入要查询的学号:")
for stu in students:
if stu["id"] == sid:
print(f"找到 → 姓名:{stu['name']},成绩:{stu['score']}")
return stu
print("未找到该学生")
return None
def update_student(students):
stu = find_student(students)
if stu:
new_score = int(input("请输入新成绩:"))
stu["score"] = new_score
print("修改成功!")
def delete_student(students):
stu = find_student(students)
if stu:
students.remove(stu)
print("删除成功!")
我们使用简单的 JSON 格式,因为它结构清晰、方便读写。
import json
def save_data(students, filename="students.json"):
with open(filename, "w", encoding="utf-8") as f:
json.dump(students, f, ensure_ascii=False, indent=2)
print("数据已保存!")
def load_data(filename="students.json"):
try:
with open(filename, "r", encoding="utf-8") as f:
data = json.load(f)
print("数据读取成功!")
return data
except FileNotFoundError:
print("文件不存在,使用空数据。")
return []
def main():
students = load_data()
while True:
show_menu()
choice = input("请选择操作:")
if choice == "1":
add_student(students)
elif choice == "2":
show_all(students)
elif choice == "3":
find_student(students)
elif choice == "4":
update_student(students)
elif choice == "5":
delete_student(students)
elif choice == "6":
save_data(students)
elif choice == "7":
students = load_data()
elif choice == "0":
print("退出系统,欢迎下次使用!")
break
else:
print("输入无效,请重新选择!")
运行:
python student_system.py
你的第一个完整小系统就能跑起来了。
如果你想继续升级这个项目,我给你一些很好拓展方向:
按成绩排序、按姓名排序等。
最高分、最低分、平均分。
从文件升级成真正的数据库。
将学生、系统封装为类,代码更专业。
瞬间变成桌面应用。
做成一个真正的“学生管理后台”。