stu_mesall = {}
def show_mes():
print("""
欢迎使用【不染学员管理信息系统】V2.0
1. 显示所有学生信息
2. 新建学生信息
3. 查询学生信息
4. 修改学生信息
5. 删除学生信息
6. 选择显示功能
7. 退出系统
""")
def show_all():
if os.path.exists("学生信息.txt"):
with open("学生信息.txt", mode="r", encoding="utf-8") as file:
ret = file.read()
global stu_mesall
stu_mesall = eval(ret)
for item in stu_mesall.values():
print(f"学号:{item['sno']} | 姓名:{item['name']} | 年龄:{item['age']} | 性别:{item['sex']} | Python成绩:{item['Python']}")
前面加了#号是注释。。。
你的代码发的太乱了
把你的代码用代码段</>的文本形式重新发一下,
import functools
import os
def ext_func():
print("""
*********************************************
您输入的学生学号不存在,请输入以下指令:
a. 重新输入学号
b. 新建学生信息
0. 回到主菜单
*********************************************
""")
# 存储学生信息
stu_mesall = {undefined
{"s001":{"sno": "s001", "name": "张三", "age": 23, "sex": "男", "生日": 45,"国籍":"中国","英语成绩": 60,"数学成绩": 50,"计算机成绩":80,
{"s002": {"sno": "s002", "name": "李思", "age": 18, "sex": "女", "生日": 87,"国籍":"法国","英语成绩": 69,"数学成绩": 59,"计算机成绩":81}}
with open("学生信息.txt", mode="w", encoding="utf-8") as stu_mesalls:
stu_mesalls.write(str(stu_mesall))
stu_mesall = {}
# 显示所有学生信息
def show_mes():
print("""*********************************************
欢迎使用【学员管理信息系统】V2.0
1. 显示所有学生信息
2. 新建学生信息
3. 查询学生信息
4. 修改学生信息
5. 删除学生信息
6. 选择显示功能
7. 退出系统
*********************************************
""")
# 显示所有学生信息
def show_all():
if os.path.exists("学生信息.txt"):
with open("学生信息.txt", mode="r", encoding="utf-8") as file:
ret=file.read()
global stu_mesall
stu_mesall = eval(ret)
for item in stu_mesall.values():
print(f"学号:{stu_mesall[item]['sno']} | 姓名:{stu_mesall[item]['name']} | 年龄:{stu_mesall[item]['age']} | 生日:{stu_mesall[item]['shengri']} | 性别:{stu_mesall[item]['sex']} | 籍贯:{stu_mesall[item]['jiguan']} | 数学成绩:{stu_mesall[item]['math']} | 英语成绩:{stu_mesall[item]['English']} | 计算机成绩:{stu_mesall[item]['jsj']}")
# 新建学生信息
def add_stu():
stu_sno = input("请输入您要新建学生的学号:")
if stu_sno in stu_mesall.keys():
print("""
*********************************************
您输入的学生学号已存在,请输入以下指令:
a. 重新输入学号
0. 回到主菜单
*********************************************
""")
while True:
info_help = input("请输入您要操作的指令:")
if info_help == 'a':
add_stu()
if info_help == '0':
return
else:
print("输入有误,请重新输入!")
else:
stu_name = input("请输入您要新建学生的姓名:")
stu_age = int(input("请输入您要新建学生的年龄:"))
stu_shengri = int(input("请输入您要新建学生的生日:"))
stu_sex = input("请输入您新建学生的性别:")
stu_jiguan = input("请输入您要新建学生的籍贯:")
stu_math = int(input("请输入您要新建学生的数学成绩:"))
stu_English = int(input("请输入您要新建学生的英语成绩:"))
stu_jsj = int(input("请输入您要新建学生的计算机成绩:"))
stu_mes = {"sno": stu_sno, "name": stu_name, "age": stu_age, "shengri": stu_shengri, "sex":stu_sex,"jiguan": stu_jiguan,"math":stu_math,"English":stu_English,"jsj":stu_jsj}
stu_mesall[stu_sno] = stu_mes
with open("学生信息.txt", mode="w", encoding="utf-8") as stu_mesalls:
stu_mesalls.write(str(stu_mesall))
print("添加成功!")
return
# 查询学生信息
def sel_stu():
stu_sno = input("请输入您要查询学生的学号:")
if stu_sno in stu_mesall.keys():
print(f"学号:{stu_mesall[stu_sno]['sno']} | 姓名:{stu_mesall[stu_sno]['name']} | 年龄:{stu_mesall[stu_sno]['age']} | 生日:{stu_mesall[stu_sno]['shengri']} | 性别:{stu_mesall[stu_sno]['sex']} | 籍贯:{stu_mesall[stu_sno]['jiguan']} | 数学成绩:{stu_mesall[stu_sno]['math']} | 英语成绩:{stu_mesall[stu_sno]['English']} | 计算机成绩:{stu_mesall[stu_sno]['jsj']}")
return
else:
ext_func
# 修改学生信息
def upd_stu():
stu_sno = input("请输入您要修改学生的学号:")
if stu_sno in stu_mesall.keys():
stu_name = input("请输入您要修改学生的姓名:")
stu_age = int(input("请输入您要修改学生的年龄:"))
stu_shengri = int(input("请输入您要修改学生的生日"))
stu_sex = input("请输入您要修改学生的性别:")
stu_jiguan = input("请输入您要修改学生的籍贯:")
stu_math = int(input("请输入您要修改学生的math成绩:"))
stu_English = int(input("请输入您要修改学生的English成绩:"))
stu_jsj = int(input("请输入您要修改学生的jsj成绩:"))
stu_mes = {"sno": stu_sno, "name": stu_name,"age":stu_age, "shengri": stu_shengri, "sex":stu_sex,"jiguan":stu_jiguan,"math":stu_math,"English":stu_English,"jsj":stu_jsj}
stu_mesall[stu_sno] = stu_mes
with open("学生信息.txt", mode="w", encoding="utf-8") as stu_mesalls:
stu_mesalls.write(str(stu_mesall))
print("修改成功!")
return
else:
ext_func()
# 选择显示功能
def func_stu():
print("""
*********************************************
欢迎进入选择显示功能界面,请输入以下指令:
a. 统计平均分
b. 统计及格率
0. 回到主菜单
*********************************************
""")
while True:
info_help = input("请输入您要操作的指令:")
if info_help == 'a':
avg_score()
elif info_help == 'b':
pass_score()
elif info_help == '0':
return
else:
print("输入有误,请重新输入!")
# 统计平均分
def avg_score():
score_list1 = [math_score['math']
for math_score in stu_mesall.values()]
print(f"学生的数学平均分:{functools.reduce(lambda x,y : x + y, score_list1) / len(score_list1)}")
score_list2 = [English_score['English']
for English_score in stu_mesall.values()]
print(f"学生的英语平均分:{functools.reduce(lambda x,y : x + y, score_list2) / len(score_list2)}")
score_list3 = [jsj_score['jsj']
for jsj_score in stu_mesall.values()]
print(f"学生的计算机平均分:{functools.reduce(lambda x,y : x + y, score_list3) / len(score_list3)}")
# 统计及格率
def pass_score():
score_list1 = [math_score['math'] for math_score in stu_mesall.values()]
print(f"学生的数学及格率为:{len([score for score in score_list1 if score >= 60]) / len(score_list1) * 100}%")
score_list2 = [English_score['English'] for English_score in stu_mesall.values()]
print(f"学生的英语及格率为:{len([score for score in score_list2 if score >= 60]) / len(score_list2) * 100}%")
score_list3 = [jsj_score['jsj'] for jsj_score in stu_mesall.values()]
print(f"学生的计算机及格率为:{len([score for score in score_list3 if score >= 60]) / len(score_list3) * 100}%")
# 删除学生信息
def del_stu():
stu_sno = input("请输入您要删除学生的学号:")
if stu_sno in stu_mesall.keys():
del stu_mesall[stu_sno]
with open("学生信息.txt", mode="w", encoding="utf-8") as stu_mesalls:
stu_mesalls.write(str(stu_mesall))
print("删除成功!")
return
else:
ext_func()
while True:
info_help = input("请输入您要操作的指令:")
if info_help == 'a':
del_stu()
elif info_help == 'b':
add_stu()
elif info_help == '0':
return
else:
print("输入有误,请重新输入!")
# 主函数
def main():
while True:
show_mes()
info_inst= input("请输入您要操作的指令:")
if info_inst == "1":
show_all()
elif info_inst == "2":
add_stu()
elif info_inst == "3":
sel_stu()
elif info_inst == "4":
upd_stu()
elif info_inst == "5":
del_stu()
elif info_inst == "6":
func_stu()
elif info_inst == "7":
return
else:
print("输入指令错误,请重新输入!")
main()