当前位置: 首页> 文旅> 美景 > 网页设计制作方法_设立深圳公司_济南网站推广优化_怎么申请域名建网站

网页设计制作方法_设立深圳公司_济南网站推广优化_怎么申请域名建网站

时间:2025/7/8 20:25:19来源:https://blog.csdn.net/karlso/article/details/148898040 浏览次数:0次
网页设计制作方法_设立深圳公司_济南网站推广优化_怎么申请域名建网站

学习目标:

  • 综合应用列表、字典、函数、文件读写、异常处理等知识
  • 完成一个可交互、可持续保存的 学生信息系统
  • 熟悉控制结构、输入验证、模块化思维

 

项目说明:

该项目将开发一个命令行运行下的学生信息管理系统,功能包括:

  • 添加学生信息(姓名,年龄,成绩)
  • 显示所有学生信息
  • 查询某个学生
  • 删除学生
  • 保存到文件(退出时自动保存)

 

目标数据结构

学生信息保存为字典形式,列表中每一项是一个学生记录:

[{"name":"Tom","age":18,"score":90},{"name":"Jerry","age":20,"score":85}
]

1.系统主菜单

def show_menu():print("""
=======学生信息管理系统========
1.添加学生
2.显示所有学生
3.查找学生
4.删除学生
5.保存并退出
==============================
""")

说明:

  • 用于每次循环中展示菜单,让用户知道哪些操作可以执行
  • 多行字符"""..."""会原样打印格式化内容

2.添加学生信息

def add_student(students):name = input("请输入姓名:")age = input("请输入年龄:")score = input("请输入成绩:")try:students.append({"name":name.strip(),            #去掉多余空格"age":int(age),                 #转换为整数,下同"score":int(score)              })print("添加成功!")except ValueError:print("错误,年龄或成绩必须为数字!")

说明:

  • 参数students是主程序维护的学生列表
  • 用input()获取用户输入
  • 使用try...except捕获用户输入非整数时的错误(例如int("abc")报错)
  • 将学生信息以字典形式添加进students列表

3.显示学生信息(带格式表头)

def show_studnets(students):if not students:print("暂无学生信息。")returnprint(f"{'姓名':<10}{'年龄':<6}{'成绩':<6}")print("-"*22)for stu in students:print(f"{stu['name']:<10}{stu['age']}{stu['score']:<6}")

说明:

  • 若学生列表为空,输出提示。
  • 使用格式化对齐方式:<10 表示字段占宽度为10,左对齐。
  • 遍历students列表,并逐行输出字典中信息

4.查找学生

def find_studnet(students):name = input("请输入要查找的学生姓名:")found = Falsefor stu in students:if stu['name'] == name:print("找到:",stu)found = Truebreakif not found:print("没有找到该学生")

5.删除学生

def delete_student(students):name = input("请输入需要删除的学生姓名:")for stu in students:if stu['name'] == name:studnets.remove(stu)print("删除成功!")returnprint("没有找到该学生。")

6.保存学生数据到文件(CSV格式)

def save_to_file(students,filename="students.txt"):with open(filename,"w",encoding="utf-8") as f:for stu in students:f.write(f"{stu['name']},{stu['age']},{stu['score']}\n")print("信息已保存至文件。")

说明:

  • 默认保存为students.txt
  • 使用with open()自动关闭文件
  • 使用csv结构的形式保存,每行一个学生(逗号分隔)

7.从文件加载数据

def load_from_file(filename="studnets.txt")students = []try:with open(filename,"r",enconding="utf-8") as f:for line in f:if line.strip() == "":continue  # 跳过空行name,age,score = line.strip().split(",")students.append({"name":name,"age":int(age),"score":int(score)})except FileNotFoundError:print("首次运行,未发现保存文件。")return students 

说明:

  • 若文件不存在不会报错,会创建空列表。
  • 每行读取后去除换行符并按逗号分割。
  • 恢复未列表中包含字典的结构。

8.主程序入门及程序入口判断

def main():students = load_from_file()while True:show_menu()choice = input("请输入选项:")if choice == "1":add_student(students)elif choice == "2":show_students(students)elif choice == "3":find_student(students)elif choice == "4":delete_student(students)elif choice == "5":save_to_file(students)breakelse:print("无效输入,请重新选择。")if __name__ == "__main__"        # 程序入口判断main()

说明:

  • 主循环永远运行,直到输入5退出
  • 用户每次输入菜单项时,会跳转到对应功能
  • 程序入口判断模块保证该模块被“直接运行时”才执行main
  • 被其它模块import时不会执行main

关键字:网页设计制作方法_设立深圳公司_济南网站推广优化_怎么申请域名建网站

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: