课题:学生信息管理系统
知识点:
基本的数据类型与结构(int/str/float/bool,list,dist,luple,sel)
基本的逻辑控制语句(if/for/while/break/continue)
Python实战项目:开发学生管理系统(基础版)
目录
1.打印学生信息系统页面
2.搭建用户操作框架
3.创建学生信息
4.新建学生信息
5.将学生信息保存到本地
6.查询学生信息
7.删除学生信息
8.修改学生信息
打印学生信息系统页面
infor = """
*******************************************************
欢迎使用【学生信息管理系统】v1.0
请选择你想要进行的操作
1.新建学生信息
2.显示全部信息
3.查询学生信息
4.删除学生信息
5.修改学生信息
0.退出系统
*******************************************************
"""
print(infor)
搭建用户操作框架
# 从外部输入用户的操作
action = input("请输入想要进行的操作:")
if action == '1':
print('新建学生信息')
elif action == '2':
print('显示全部信息')
elif action == '3':
print('查询学生信息')
elif action == '4':
print('删除学生信息')
elif action == '5':
print('修改学生信息')
elif action == '0':
print('退出系统')
else:
print('输入有误,请输入正确操作数字。')
创建学生信息
students = [
{'name':'张三','math':'60','chinese':'60','english':'60','total':'180'},
{'name':'李四','math':'70','chinese':'70','english':'70','total':'210'},
{'name':'王五','math':'80','chinese':'80','english':'80','total':'240'},
]
显示学生信息
elif action == '2':
print('显示全部信息')
print('姓名\t数学\t语文\t英语\t总分')
for student in students:
print('{}\t{}\t{}\t{}\t{}'.format(*student.values())) # *将列表值进行解剖
新建学生信息
if action == '1':
print('新建学生信息')
name = input('请输入新建学生名字:')
math = int(input('请输入新建学生数学成绩:'))
chinese = int(input('请输入新建语文成绩:'))
english = int(input('请输入新建英语成绩:'))
total = math + chinese + english
students.append(
{'name': name,
'math': math,
'chinese': chinese,
'english': english,
'total': total})
将学生信息保存到本地
以便下次打开删减增学生信息还在
import json # 把数据保存到本地文件
# # 原始数据
# students = [
# {'name':'张三','math':'60','chinese':'60','english':'60','total':'180'},
# {'name':'李四','math':'70','chinese':'70','english':'70','total':'210'},
# {'name':'王五','math':'80','chinese':'80','english':'80','total':'240'},
# ]
# 从JSON文件中读取数据
with open('students.json', mode='r', encoding='utf-8') as f:
students = json.load(f)
with open('students.json',mode='w',encoding='utf-8') as f: # 将修改的students文件重新写入保存到json中
f.write(json.dumps(students,ensure_ascii=False)) # 将students转为str并保存
break
自动生成一个名为students.json文件
创建一个学生信息并退出系统
重新进入系统查询全部学生信息
查询学生信息
elif action == '3':
# print('查询学生信息')
name = input('请输入想要查询的学生名字:')
for student in students:
if name == student['name']:
print('姓名\t数学\t语文\t英语\t总分')
print('{}\t{}\t{}\t{}\t{}'.format(*student.values()))
break
else:
print(f'{name}这个学生不存在。')
删除学生信息
elif action == '4':
# print('删除学生信息')
name = input('请输入想要删除的学生名字:')
for student in students:
if name == student['name']:
# 删除信息可以使用del,pop,remove
# students.remove(student)
# students.pop(students.index(student))
del students[students.index(student)] # students.index(student)提取下标
break
else:
print(f'{name}这个学生不存在。')
修改学生信息
elif action == '5':
# print('修改学生信息')
name = input('请输入想要修改的学生名字:')
for student in students:
print('请重新输入学生成绩,如果不输入内容/输入空格则不修改此项成绩')
if name == student['name']:
math = input('请输入修改后学生数学成绩:')
if math:
math = int(math)
student['math'] = math
chinese = input('请输入修改后学生语文成绩:')
if chinese:
chinese = int(chinese)
student['chinese'] = chinese
english = input('请输入修改后学生英语成绩:')
if english:
english = int(english)
student['english'] = english
student['total'] = int(student['math']) + int(student['chinese']) + int(student['english'])
break
else:
print(f'{name}这个学生不存在。')