Python学生记录管理:实现升序/降序排序选择功能
实现按用户选择的升序/降序展示学生记录
你需要修改view_records函数,添加用户排序方向选择的逻辑,具体实现如下:
修改步骤
- 添加排序方向选择交互:在读取记录前,让用户选择升序或降序,同时处理无效输入,确保用户输入合法选项。
- 绑定排序方向参数:利用
sorted函数的reverse参数,根据用户选择控制排序方向。
修改后的完整view_records代码
import csv student_info = ['Student ID', 'First name', 'last name', 'age', 'address', 'phone number'] database = 'file_records.txt' def view_records(): print("--- Student Records ---") # 循环获取合法的排序方向选择 while True: sort_choice = input("请选择排序方向:1-升序,2-降序:") if sort_choice in ['1', '2']: break print("无效输入,请输入1或2") # 根据选择设置排序反转参数 reverse_order = sort_choice == '2' with open(database, "r", encoding="utf-8") as f: for x in student_info: print(x, end='\t |') print("\n-----------------------------------------------------------------") reader = csv.reader(f) # 应用用户选择的排序方向 student_records = sorted(reader, key=lambda r: (r[2], r[1]), reverse=reverse_order) for row in student_records: print(*row, sep="\t |") input("Done! Press enter to continue") print('returning to Main Menu')
功能说明
- 新增的输入循环会强制用户输入
1或2,避免无效输入导致程序异常。 - 排序逻辑仍保留原有的「先姓氏、后名字」的排序键,仅通过
reverse参数切换升序/降序。 - 主程序文件无需修改,用户选择功能4时会自动触发排序方向选择流程。
内容的提问来源于stack exchange,提问作者user20627835
相关产品推荐
相关产品推荐

