news 2026/6/10 6:11:09

python的小型实践项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python的小型实践项目

🎓 学生成绩管理系统(Python 控制台版)

功能:
  1. 添加学生信息(姓名、学号、成绩)
  2. 查看所有学生信息
  3. 根据学号或姓名查找学生
  4. 修改学生成绩
  5. 删除学生信息
  6. 统计平均分、最高分、最低分
  7. 退出系统

✅ 项目代码:

# 学生成绩管理系统

students = [] # 全局列表存储学生信息,每个学生是一个字典

def add_student():
"""添加学生"""
name = input("请输入学生姓名: ")
student_id = input("请输入学生学号: ")

# 检查学号是否已存在
for s in students:
if s['学号'] == student_id:
print("❌ 学号已存在!")
return

try:
score = float(input("请输入学生成绩: "))
if score < 0 or score > 100:
print("⚠️ 成绩应在0-100之间!")
return
except ValueError:
print("❌ 输入的成绩无效,请输入数字!")
return

student = {
'姓名': name,
'学号': student_id,
'成绩': score
}
students.append(student)
print(f"✅ 学生 {name} 添加成功!")

def view_all_students():
"""查看所有学生"""
if not students:
print("📭 暂无学生信息。")
return
print("\n" + "="*50)
print("所有学生信息:")
print("="*50)
for s in students:
print(f"姓名: {s['姓名']}, 学号: {s['学号']}, 成绩: {s['成绩']}")
print("="*50)

def search_student():
"""查找学生"""
if not students:
print("📭 暂无学生信息。")
return
keyword = input("请输入要查找的姓名或学号: ")
found = False
for s in students:
if keyword == s['姓名'] or keyword == s['学号']:
print(f"🔍 找到学生: 姓名: {s['姓名']}, 学号: {s['学号']}, 成绩: {s['成绩']}")
found = True
if not found:
print("❌ 未找到该学生。")

def update_student():
"""修改学生成绩"""
if not students:
print("📭 暂无学生信息。")
return
student_id = input("请输入要修改的学生学号: ")
for s in students:
if s['学号'] == student_id:
try:
new_score = float(input(f"当前成绩为 {s['成绩']},请输入新成绩: "))
if new_score < 0 or new_score > 100:
print("⚠️ 成绩应在0-100之间!")
return
s['成绩'] = new_score
print("✅ 成绩更新成功!")
except ValueError:
print("❌ 输入无效!")
return
print("❌ 未找到该学生。")

def delete_student():
"""删除学生"""
if not students:
print("📭 暂无学生信息。")
return
student_id = input("请输入要删除的学生学号: ")
for i, s in enumerate(students):
if s['学号'] == student_id:
confirm = input(f"确定要删除学生 {s['姓名']} 吗?(y/n): ")
if confirm.lower() == 'y':
students.pop(i)
print("✅ 学生删除成功!")
else:
print("❌ 取消删除。")
return
print("❌ 未找到该学生。")

def show_statistics():
"""显示统计信息"""
if not students:
print("📭 暂无学生成绩数据。")
return
scores = [s['成绩'] for s in students]
avg_score = sum(scores) / len(scores)
max_score = max(scores)
min_score = min(scores)
print("\n📊 成绩统计:")
print(f"总人数: {len(students)}")
print(f"平均分: {avg_score:.2f}")
print(f"最高分: {max_score}")
print(f"最低分: {min_score}")

def main():
"""主菜单"""
print("🎓 欢迎使用学生成绩管理系统")
while True:
print("\n" + "-"*40)
print("请选择功能:")
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':
view_all_students()
elif choice == '3':
search_student()
elif choice == '4':
update_student()
elif choice == '5':
delete_student()
elif choice == '6':
show_statistics()
elif choice == '7':
print("👋 感谢使用,再见!")
break
else:
print("❌ 无效输入,请重新选择。")

if __name__ == "__main__":
main()


🔧 如何运行?

  1. 将上述代码保存为student_grade_system.py
  2. 在终端运行:
    python student_grade_system.py

💡 项目扩展建议(进阶练习):

  • 使用文件(如students.txt或 JSON)持久化保存数据
  • 支持多门课程成绩(如语文、数学)
  • 使用类(StudentGradeSystem)重构代码
  • 添加图形界面(Tkinter 或 PyQt)
  • 排序功能:按成绩排序显示

这个项目涵盖了输入输出、循环、条件判断、列表和字典操作等基础知识点。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 20:31:36

Windows系统文件ucrtbase.dll丢失损坏 免费下载方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/5/21 16:34:01

健康小屋现再次来到了北京国中康健

健康小屋再度入驻北京国中康健&#xff0c;凭借便捷性与专业性双重优势&#xff0c;为市民带来更优质的健康服务&#xff0c;同时进一步完善了国中康健的健康服务体系&#xff0c;发挥着便民利民的重要作用。 此次健康小屋再临&#xff0c;核心优势集中在两方面。一方面是服务便…

作者头像 李华
网站建设 2026/6/8 17:35:55

微信小程序uniapp-vue祛痘美容减肥个人健康交流打卡

文章目录具体实现截图主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;带文档1万…

作者头像 李华
网站建设 2026/6/5 2:13:37

工业HMI通讯协议入门:Modbus协议详解(新手必学)

在工业自动化系统中&#xff0c;HMI与PLC、传感器、仪表等设备之间的“对话”&#xff0c;必须遵循一套严格的语法规则&#xff0c;这套规则就是通讯协议。在众多协议中&#xff0c;Modbus以其极致的简单、开放和广泛的兼容性&#xff0c;成为了工业领域无可争议的“通用普通话…

作者头像 李华
网站建设 2026/6/5 20:12:49

基于Python+Django岛滨海学院增值性评价课程考核系统(源码+讲解视频+LW)

本课题针对滨海学院传统课程考核模式中评价维度单一、增值性分析缺失、数据统计低效等问题&#xff0c;设计并实现基于PythonDjango的增值性评价课程考核系统。课题以“精准评价、数据驱动、适配校园”为核心目标&#xff0c;依托Python高效的数据处理能力与Django框架的快速开…

作者头像 李华