学习任务单
课程基本信息
课题 5.4 数 据 查 找 ——查找算法的应用
学习目标
1.能对给定的文件中的数据进行抽象并建立模型。 2.能合理选用数据结构,设计查找算法。 3.能用Python语言编写具体的查找程序。 4.能自觉对学习生活具体问题抽象建模、设计算法并编写程序及调试程序。
课前学习任务
1. 体验生活、学习中的查找任务。
课上学习任务
航空公司VIP会员积分查询部分数据(Excel数据) 【学习任务一】 抽象与建模 【学习任务二】 (二)设计算法与数据结构 【学习任务三】编写程序并调试
【学习任务四】学习生活中的应用实践: 校园一卡通号码查询。某校共n名学生,严老师编写了一个校园一卡通号码查询程序,输入号码就能查询该号码所属的班级和学生姓名。如右图所示所有学生数据存储在“校园一卡通.csv”表格中,该表格分别保存了本校所有学生的号码、所在班级和姓名的信息,号码的编码规则为入学年份+班级加身份证号后三位。第i个学生的号码保存在第1列中,对应的班级和姓名保存在第2列和第3列中。输入号码,电脑开始查找该号码的信息,如果找到对应的信息,就显示所属班级和姓名,如果没有找到,则显示“没有查询到该号码信息!” 相应程序如下,请在程序划线①②③处填入相应的代码,把程序补充完整。 import csv flie1=open('校园一卡通.csv','r') reader=csv.reader(flie1) st=[] for it in reader: ① flie1.close() # 冒泡排序 for i in range(1,len(st)-1): for j in range(len(st)-1,i,-1): if ② : st[j],st[j-1]=st[j-1],st[j] for i in range(len(st)): print(st[i]) # 二分查找 key=input(‘请输入需要查找的卡号:') i=1;j=len(st)-1 while i<=j: m=(i+j)//2 if ③ : i=m+1 else: j=m-1 if st[i][0]==key: print(st[0]) print(st[i]) else: print("没有该号码信息!")