| 新学期到了,学校接收了一批捐赠的图书,小明编写了一个简单的程序用来管理图书,并支持借阅功能。为了提高查找图书的效率,小明使用了二分查找法来设计图书借阅功能。以下是小明编写的图书借阅管理程序,请你补全代码。 library=dict() #用字典生成一个图书管理数据结构(字典的键为编号,字典的值为[‘书名’,本数]) #书籍入库 nums=len(library) #先计算图书编号总数 library[nums+1]=[‘红楼梦’,5] #在编号总数的基础上继续添加新书:library[新编号]=[‘书名’,本数] library[nums+2]=[‘西游记’,10] library[nums+3]=[‘水浒传’,5] library[nums+4]=[‘三国演义’,10] print(library) blist=list(library.keys()) #按书名借阅: bookname=input(‘请输入借阅图书名称:’) min_v = blist[0] max_v = blist[-1] turns=0 while min_v <= ++①++: turns += 1 cur = (min_v + max_v)++②++ print(cur) if library[cur][0] == ++③++ : if library[cur][1] > 0: library[cur][1] -= ++④++ print(‘《%s》借阅成功!’%bookname) else: print(‘抱歉,您选择的书籍已被借完!’) break elif blist[cur-1] > cur: min_v = ++⑤++ else: max_v = ++⑥++ print(“经过%d轮二分查找,完成图书的搜索。”%turns) |
刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
答案:
参考程序:
学校图书管理系统
library=dict() #用字典生成一个图书管理数据结构(字典的键为编号,字典的值为[‘书名’,本数])
书籍入库
nums=len(library) #先计算图书编号总数 library[nums+1]=[‘红楼梦’,5] #在编号总数的基础上继续添加新书:library[新编号]=[‘书名’,本数] library[nums+2]=[‘西游记’,10] library[nums+3]=[‘水浒传’,5] library[nums+4]=[‘三国演义’,10] print(library)
blist=list(library.keys())
按书名借阅:
bookname=input(‘请输入借阅图书名称:’)
min_v = blist[0] max_v = blist[-1] turns=0
while min_v <= max_v: turns += 1 cur = (min_v + max_v) **//**2 print(cur) if library[cur][0]==bookname: if library[cur][1] > 0: library[cur][1] -= 1 print(‘《%s》借阅成功!’%bookname) else: print(‘抱歉,您选择的书籍已被借完!’) break elif blist[cur -1] > cur: min_v = cur +1 else: max_v =cur -1 print(“经过%d轮二分查找,完成图书的搜索。”%turns)
解析:
本文链接: 新学期到了,学校接收了一批捐赠的图书,小明编写了一个简单的程序用来管理图书,并支持借阅功能。
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!



