万卷网 > 题目详情
题型:编程题

新学期到了,学校接收了一批捐赠的图书,小明编写了一个简单的程序用来管理图书,并支持借阅功能。为了提高查找图书的效率,小明使用了二分查找法来设计图书借阅功能。以下是小明编写的图书借阅管理程序,请你补全代码。

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)

更新时间:2023-06-13 18:18:01 |
【知识点】 电子学会Python三级

相似题推荐

单选题

在Python中,print(set('good'))运行的结果是?( )

A.

['g','o','o','d']

B.

['g','o','d']

C.

{'g','o','o','d'}

D.

{'g','o','d'}

2026-07-10
单选题

分析以下Python代码,它将会输出什么?( )

import csv
with open('sample.csv', 'r') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)

sample.csv文件的内容如下:

id,name,age

1,Alice,25

2,Bob,30

A.

将输出整个CSV文件的内容,包括列标题

B.

将只输出数据行,不包括列标题

C.

运行会报错,因为缺csvfile.close()

D.

运行会报错,因为print(row)语句不正确

2026-07-10
单选题

以下Python代码执行后,输出是?( )

try:
     num = int('abc')
except ValueError:
     print('Error')
else:
     print('OK')
A.

Error

B.

OK

C.

无输出

D.

报错

2026-07-10
判断题

bool(0)、bool("0")、bool(None)、bool('')这四个Python表达式输出的结果都是False。( )

A.正确 B.错误
2026-07-10
判断题

在Python编程语言中,'0b10' 表示二进制数10,并且这个数换算为十进制,就是整数2。( )

A.正确 B.错误
2026-07-10
公众号
客服 反馈
顶部