python实现成绩录入并排序(Python实战课程-搭建学生信息管理系统)
根据用户需求条件进行排序(例如:按照各科成绩和总成绩进行升序、降序排列展示数据)
排序业务模块流程设计图
排序功能具体实现代码
自定义函数方法 sort() 根据条件进行升序、降序排列展示数据
# 自定义sort()函数方法实现数据排序功能
def sort():
# 调用show() 函数方法进行数据展示
show()
# 判断文件是否存在
if os.path.exists(filename):
with open(filename,'r',encoding='utf-8') as rfile:
student_lst = rfile.readlines()
# 自定义变量接收循环遍历数据
student_new = []
# 遍历循环数据输出
for item in student_lst:
stu_dict = dict(eval(item))
# 将遍历后的字典数据添加到变量中
student_new.append(stu_dict)
else:
return
# 定义变量接收用户条件(升降序)
asc_or_desc = input('请选择排序方式(0.升序,1.降序):')
# 根据用户输入条件进行判断并排序
if asc_or_desc == '0':
# 定义升序 为False
asc_or_desc_bool = False
elif asc_or_desc == '1':
# 定义降序 True
asc_or_desc_bool = True
else:
print('您的输入有误,请重新输入!')
# 调用方法重新执行
sort()
mode = input('请选择排序方式(1.按用于成绩排序,2.按Python成绩排序,3.按Java成绩排序,0.按总成绩排序):')
if mode == '1':
student_new.sort(key=lambda x:int(x['english']),reverse=asc_or_desc_bool)
elif mode == '2':
student_new.sort(key=lambda x:int(x['python']),reverse=asc_or_desc_bool)
elif mode == '3':
student_new.sort(key=lambda x:int(x['java']),reverse=asc_or_desc_bool)
elif mode == '0':
student_new.sort(key=lambda x:int(x['english']) int(x['python']) int(x['java']),reverse=asc_or_desc_bool)
else:
print('您的输入有误,请重新输入!')
sort()
# 显示数排序后的数据
show_student(student_new)
统计学生总人数
自定义函数方法 total()统计数据总数
统计业务流程图
具体代码实现
# 自定义函数方法 total() 统计数据总数
def total():
# 判断文件是否存在
if os.path.exists(filename):
# 以只读方式(r)打开文件
with open(filename,'r',encoding='utf-8') as rfile:
# 定义变量接受读取到的全部数据
student_lst = rfile.readlines()
# 判断 student_lst
if student_lst:
print(f'一共有{len(student_lst)}名学生!')
else:
print('暂未查询到数据信息!')
else:
print('暂未查询到数据!请核实或录入数据!')
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com