python实现学生信息管理系统源代码

format_title = ‘{:6}\t{:8}\t{:8}\t{:10}\t{:10}\t{:18}\t’

print(format_title.format(‘ID’, ‘姓名’, ‘英语成绩’, ‘python成绩’, ‘java成绩’, ‘总成绩’))

定义内容的显示格式

format_data = ‘{:6}\t{:8}\t{:8}\t{:8}\t{:8}\t{:18}\t’

for item in lst:

sum = int(item[‘english’]) + int(item[‘python’]) + int(item[‘java’])

print(format_data.format(item[‘id’], item[‘name’], \

item[‘english’], item[‘python’], item[‘java’], \

sum))

def search():

while True:

stu_query = []

id = ‘’

name = ‘’

判断文件是否存在

if os.path.exists(fileName):

输入查询标号

mode = input(‘按ID查找请按1,按姓名查找请按2:’)

if mode == ‘1’:

id = input(‘请输入要查找的学生id:’)

elif mode == ‘2’:

name = input(‘请输入要查找学生的姓名:’)

else:

print(‘您的输入有误,请重新输入!’)

continue

如果文件存在,并且用户输入了正确的查询标号,则打开文件

with open(fileName, ‘r’, encoding=‘utf-8’) as rfile:

students = rfile.readlines()

将读取到的信息转换为字典类型

for item in students:

d = dict(eval(item))

if id != ‘’:

if id == d[‘id’]:

stu_query.append(d)

elif name != ‘’:

if name == d[‘name’]:

stu_query.append(d)

显示查询结果

show_student(stu_query)

是否查询其他学生信息

answer = input(‘还要查询其他学生吗?y/n\n’)

if answer == ‘y’ or answer == ‘y’:

continue

else:

break

else:

print(‘学生信息文件不存在!’)

return

def delete():

while True:

student_id = input(‘请输入要删除学生的id:’)

if student_id != ‘’:

if os.path.exists(fileName):

with open(fileName, ‘r’, encoding=‘utf-8’) as file:

student_old = file.readlines()

else:

student_old = []

flag = False # 标记是否删除

if student_old:

with open(fileName, ‘w’, encoding=‘utf-8’) as wfile:

d = {}

for item in student_old:

d = dict(eval(item)) # 将字符串转换为字典

if d[‘id’] != student_id:

wfile.write(str(d) + ‘\n’)

else:

flag = True

if flag:

print(f’id为{student_id}的学生信息已经删除’)

else:

print(f’学生表中没有找到id为{student_id}的学生’)

else:

print(‘学生表中无任何学生信息’)

break

show() # 重新显示所有学生信息

answer = input(‘是否继续删除?y/n\n’)

if answer == ‘y’ or answer == ‘Y’:

continue

else:

break

def modify():

while True:

展示学生信息

show()

如果原文件存在,打开原文件,读出所有信息

if os.path.exists(fileName):

with open(fileName, ‘r’, encoding=‘utf-8’) as rfile:

student_old = rfile.readlines()

else:

print(‘学生文件信息不存在!’)

return

创建一个新的文件,读取之前文件中的每一个学生信息

student_id = input(‘请输入要修改的学生id:’)

flag = False # 标记是否在学生信息表中找到要修改的学生信息

with open(fileName, ‘w’, encoding=‘utf-8’) as wfile:

for item in student_old:

d = dict(eval(item))

如果在原文件的某一行找到要修改的学生id,则对其进行修改

if d[‘id’] == student_id:

print(‘找到学生信息,可以修改该生的相关信息’)

while True:

try:

d[‘name’] = input(‘请输入姓名:’)

d[‘english’] = input(‘请输入英语成绩:’)

d[‘python’] = input(‘请输入python成绩:’)

d[‘java’] = input(‘请输入java成绩:’)

break

except:

print(‘您的输入有误,请重新输入!!!’)

wfile.write(str(d) + ‘\n’)

flag = True

else:

wfile.write(str(d) + ‘\n’)

if flag:

print(‘修改成功!!!’)

else:

print(‘没有找到要修改学生的id!!!’)

询问是否要接着修改

answer = input(‘是否修改其他学生信息?y/n\n’)

if answer == ‘y’ or answer == ‘Y’:

continue

else:

break

def sort():

show()

判断文件是否存在,如果存在则打开文件,读取信息

if os.path.exists(fileName):

with open(fileName, ‘r’, encoding=‘utf-8’) as rfile:

students_list = rfile.readlines()

students_new = []

判断读取到的学生信息是否为空

if students_list:

将所有的item加入到students_new中

for item in students_list:

d = dict(eval(item))

students_new.append(d)

选择升序or降序

asc_or_desc = input(‘请选择(0为升序,1为降序):’)

if asc_or_desc == ‘0’:

asc_or_desc_bool = False

elif asc_or_desc == ‘1’:

asc_or_desc_bool = True

else:

print(‘您的输入有误,请重新输入’)

sort()

选择按照什么成绩排序

mode = input('请选择排序方式(1.按英语成绩排序 2.按python成绩排序 \

3.按java成绩排序 0.按总成绩排序)😂

if mode == ‘1’:

students_new.sort(key=lambda x: int(x[‘english’]), reverse=asc_or_desc_bool)

elif mode == ‘2’:

students_new.sort(key=lambda x: int(x[‘python’]), reverse=asc_or_desc_bool)

elif mode == ‘3’:

students_new.sort(key=lambda x: int(x[‘java’]), reverse=asc_or_desc_bool)

elif mode == ‘0’:

students_new.sort(key=lambda x: int(x[‘english’]) + int(x[‘python’]) + int(x[‘java’]), \

reverse=asc_or_desc_bool)

else:

print(‘您的输入有误,请重新输入!!!’)

sort()

将排序后的成绩进行输出

show_student(students_new)

else:

print(‘学生文件中还没有录入学生信息!’)

else:

print(‘学生文件不存在!’)

return

def total():

判断文件是否存在,如果存在则打开文件,读取信息

if os.path.exists(fileName):

with open(fileName, ‘r’, encoding=‘utf-8’) as rfile:

students = rfile.readlines()

判断读取到的学生信息是否为空

if students:

print(‘一共有{}名学生’.format(len(students)))

else:

print(‘学生文件中还没有录入学生信息!’)

else:

print(‘学生文件不存在!’)

return

def show():

student_list = []

判断文件是否存在,如果存在则打开文件,读取信息

if os.path.exists(fileName):

with open(fileName, ‘r’, encoding=‘utf-8’) as rfile:

students = rfile.readlines()

判断读取到的学生信息是否为空

if students:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

nvert/252731a671c1fb70aad5355a2c5eeff0.png)

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

img
  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值