一、编程题
1、36.下面代码,在字典a中查找身高为137的人,请将代码中缺失部分补充完整。
a = {'小赵':136,'小钱':141,'小孙':146,'小李':138,'小周':142,'小吴':134,'小郑':137,'小王':143}
keys = a.keys()
b = 0 # 用于判断查找是否成功
for key in keys:
value = a[ ① ]
if ② == 137:
print('找到身高为137的人是: ', key)
b = b+1 # 有找到的人
③ # 退出循环
if b == 0 :
print('本次查找,未找到有身高为137的同学。 ')
参考答案:① a[key]② a[key]③ break
2、37.张老师手上有一份学生成绩单(cj.txt),成绩单上只有每位学生的各科成绩,而张老师希望能看到各科成绩的所有学生的平均分,以下代码可以实现平均分的计算,并按示例格式排版,请补充代码。
示例:
with open('/data/cj.txt', ① ) as f:
string = f.read()
data = string.split('\n')
data.pop(0)
lis = []
for i in data:
new = i.split('\t')
lis.append(new)# 将分割得到的列表追加到空列表中,lis 为二维
lis1 = ['平均分']
for i in range(1,4):# 循环3次,因为需要计算3个科目的平均分
sum_ = ②
average = round(sum_ / 3)
lis1.append(str(average))
s = "\t".join(lis1)
res = string + s
with open('cj1.txt', 'w') as f:
f.write(res)
参考答案:① 'r'② sum(float(new[i]) for new in lis)
3、38.工厂有一台检测设备用于检测器件,各个器件在不完全相同时刻送达,且检测时长各有不同。现在要按器件的送达时间(若送达时间相同则按检测时长)进行排序后再送检,送达时间和检测时间都是按升序排序。已知各个器件原始信息存在列表qj中:qj=[[2,1],[1,3],[0,2],[4,3],[12,4],[10,1],[4,1]],其中器件信息[2,1]表示器件送达时间是2,检测时长是1,其他器件信息类推。现在编写Python程序对各个器件进行排序,并重新输出。排序后的器件列表如下,请你在划线处完善程序:
qj=[[2,1],[1,3],[0,2],[4,3],[12,4],[10,1],[4,1]]
for i in range(len(qj)-1):
for j in range(0, ① ):
if ② or (qj[j][0]==qj[j+1][0]and ③ ):
qj[j],qj[j+1]=qj[j+1],qj[j]
print( ④ )
参考答案:```pythonfor i in range(len(qj)-1):for j in range(0, len(qj)-i-2):if qj[j][0] > qj[j+1][0] or (qj[j][0] == qj[j+1][0] and qj[j][1] > qj[j+1][1]):qj[j], qj[j+1] = qj[j+1], qj[j]print(qj)```
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!