Python等级考试四级编程题:商超会员客户信息管理系统。
商超采用会员制,客户消费信息包含会员号、姓名和积分,需实现功能:输入会员号,查询该会员的积分。会员信息示例如下:
| 序号 | 会员号 | 姓名 | 积分 |
|---|---|---|---|
| 1 | 8011 | 张飞 | 12345 |
| 2 | 8012 | 李强 | 34512 |
| 3 | 7812 | 李好 | 45321 |
| ... | ... | ... | ... |
已知会员信息存储在列表data中,data[i][0]存储第i条记录的会员号,data[i][1]存储姓名,data[i][2]存储积分。需先将data按会员号升序排序,再用二分查找算法查找对应会员的积分,补全以下代码中的三处空缺(①②③):
def bubble_sort(d):
for i in range(len(d)-2):
for j in range(len(d)-1, ①, -1):
if d[j][0] < d[j-1][0]:
d[j],d[j-1] = d[j-1],d[j]
def bin_search(d, key):
i,j = 0, len(d)-1
while i <= j:
m = (i + j) // 2
if ②:
return m
if key > d[m][0]:
i = m + 1
else:
j = m - 1
return -1
# 从数据库读取会员信息存列表data中,代码略
data = [[8011,'张飞',12345],[8012,'李强',34512],[7812,'李好',45321]]
bubble_sort(data)
key = int(input('输入会员号:'))
m = ③
if m != -1:
print(data[m][1],'先生/女士:您的积分是:',data[m][2])
else:
print('该会员号不正确')