python实现成绩录入并排序(Python实战课程-搭建学生信息管理系统)

根据用户需求条件进行排序(例如:按照各科成绩和总成绩进行升序、降序排列展示数据)

python实现成绩录入并排序(Python实战课程-搭建学生信息管理系统)(1)

排序业务模块流程设计图

python实现成绩录入并排序(Python实战课程-搭建学生信息管理系统)(2)

排序功能具体实现代码

自定义函数方法 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()统计数据总数

python实现成绩录入并排序(Python实战课程-搭建学生信息管理系统)(3)

统计业务流程图

python实现成绩录入并排序(Python实战课程-搭建学生信息管理系统)(4)

具体代码实现

# 自定义函数方法 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

    分享
    投诉
    首页