万卷网> 电子学会考级 >Python等级考试 > 2023年9月电子学会青少年软件编程(Python三级)等级考试试卷

2023年9月电子学会青少年软件编程(Python三级)等级考试试卷
操作/编程 三级 2023 2023-10-16 11:45:21 84

一、编程题

1.

工厂有一台检测设备用于检测器件,各个器件在不完全相同时刻送达,且检测时长各有不同。现在要按器件的送达时间(若送达时间相同则按检测时长)进行排序后再送检,送达时间和检测时间都是按升序排序。已知各个器件原始信息存在列表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(        ④        )

2.

张老师手上有一份学生成绩单(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)

3.

下面代码,在字典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的同学。 ')

公众号
客服 反馈
顶部