本次Python二级等级考试满分100分,共37题,涵盖单选题25题(50分)、判断题10题(20分)、编程题2题(30分),核心考查列表/元组/字典操作、字符串处理、循环与分支结构等Python基础核心知识点,适配考级复习与知识点巩固,以下为完整版真题+详细解析。
一、单选题(共25题,每题2分,共50分)
1. 请问执行以下语句后,列表shi的值为?( )
shi=["春望","将进酒","咏柳","悯农"]shi[2]="春夜喜雨"
- C.['春望', '将进酒', '春夜喜雨', '悯农']
- D.['春望', '春夜喜雨', '咏柳' '悯农']解析:列表索引从0开始,shi[2]对应第三个元素“咏柳”,赋值操作仅修改该位置元素,其余元素保持不变。
2. 元组play=('足球','篮球','蝶泳','自由泳','仰泳','跑步','跳绳'),希望只访问第2个和第3个元素,正确的是?( )
- D.play[1:3]解析:元组切片格式
[start:end]含头不含尾,play[1:3]从索引1(第二个元素)开始,到索引3前结束,仅取第2、3个元素。
3. 运行程序输入88,得到的输出结果是?( )
score=int(input("请输入考试成绩:"))if(score>=90): print("你的等级是A")elif(score>=75): print("你的等级是B")else: print("你的等级是C")
- D.无输出解析:88不满足≥90,但满足≥75,执行elif分支的输出语句,结果为“你的等级是B”。
4. 下面代码的输出结果是?( )
num_list = [2, 4, 6, 8]print(num_list[-1])
- D.10解析:列表负索引从末尾开始,-1对应最后一个元素,num_list[-1]即8。
5. 字典 my_dict = {'a': 1, 'b': 2},获取键 'a' 对应的值,正确方式是?( )
- D.my_dict[a]解析:字典通过
字典名[键名]访问值,键需加引号;B用括号、C无括号/中括号、D无引号均为语法错误。
6. Python中执行以下代码后输出是?( )
a = 15if a > 10: print("A", end="")elif a > 5: print("B", end="")else: print("C")
- D.无输出解析:a=15满足a>10,执行第一个分支的print("A"),end=""仅取消换行,不影响输出内容。
7. 请问下列程序运行后,输出结果应该是?( )
s="我爱Python"for i in s: print(i)
- B.我(换行)爱(换行)P(换行)y(换行)t(换行)h(换行)o(换行)(换行)n
- D.我爱(换行)P(换行)y(换行)t(换行)h(换行)o(换行)(换行)n解析:for循环遍历字符串每个字符,print(i)默认换行输出,每个字符单独占一行。
8. 诗句列表 poem = ["黄河","白云间"] 需插入"远上"至“黄河”后,正确代码是?( )
- D.poem[1] = "白日"解析:insert(索引, 元素)可插入到指定位置,“黄河”是索引0,插入到索引1可实现“黄河”→“远上”→“白云间”的顺序;A语法错误,B插入位置错误,D是替换元素。
9. 列表names记录学生名字,获取年级总人数的代码是?( )
- D.sorted(names)解析:len()函数用于获取列表长度(元素个数);count()需传参数统计指定元素数量,append()用于添加元素,sorted()用于排序。
10. 字典stu_info = {'Alice': 101, 'Bob': 102, 'Cathy': 103},查询Bob的学号,正确代码是?( )
- D.stu_info.get(102)解析:字典通过键访问值,stu_info['Bob']可获取Bob的学号;A错误(字典无索引),C是删除操作,D get()需传键而非值。
11. 想要打印三次“好好学习”,正确的代码是?( )
- A.for i in range(3): print("好好学习")
- B.for i in range(4): print("好好学习")
- C.while i < 3: print("好好学习")
- D.while i < 3: print("好好学习") i += 1解析:range(3)生成0、1、2,循环3次;B循环4次,C/D未初始化变量i,会报错。
12. 已知列表ls=[1,2,3,4,5,6,7,8,9,10],输出[2,4,6,8,10]的语句是?( )
- D.print(ls[::-2])解析:切片
ls[1:10:2]从索引1(元素2)开始,到索引10前结束,步长2,依次取2、4、6、8、10;B取奇数,C返回空列表,D反向取偶数。
13. 以下对于元组tp=(1,2,3,4,5)的操作,不正确的是?( )
- D.print(tp.remove(2))解析:元组是不可变序列,无remove()、append()等修改元素的方法;A可实现元组重复,B可拼接元组,C可切片,均为合法操作。
14. 以下创建字典的方法,错误的是?( )
- B.d={'数学':100,'语文':95,'英语':97}
- D.d={['数学']:100,['语文']:95}解析:字典的键必须是不可变类型(字符串、数字、元组),列表是可变类型,不能作为键。
15. 温控程序判断t≥35为“高温”,t≤18为“寒冷”,其他为舒适,错误的程序是?( )
- A.t=int(input()) if t >= 35: print("高温") elif t >18: print("舒适") else: print("寒冷")
- B.t=int(input()) if t <=18: print("寒冷") elif t <35: print("舒适") else: print("高温")
- C.t=int(input()) if t <=18: print("寒冷") elif t <=35: print("舒适") else: print("高温")
- D.t=int(input()) if t <=18: print("寒冷") if t>18 and t<35: print('舒适') if t>=35: print('高温')解析:C中t=35时,会满足elif t<=35,输出“舒适”,但实际35应判定为“高温”,逻辑错误。
16. 有关流程控制的说法,错误的是?( )
- A.当有明确的循环退出条件时,优先考虑使用while语句
- C.可以使用if-else-if语句实现多条件结构判断
- D.continue语句用于结束本次循环,跳过循环体中尚未执行的语句,继续进行下一轮的循环判断。解析:Python中多条件判断使用
if-elif-else,无if-else-if语法。
17. 关于Python中的列表,描述错误的是?( )
- A.列表是Python中内置可变序列,是若干元素的有序集合
- C.可以使用List[1]来获取List列表的首个元素
- D.列表中的元素可以是列表,也就是列表的元素可以也是列表。解析:列表索引从0开始,首个元素对应索引0,List[1]是第二个元素。
18. 执行下方程序,输出结果是?( )
L=['开始']for num in range(4): L.append(num) print(L)
- D.[0, 1, 2, 3]解析:range(4)生成0、1、2、3,循环4次依次追加到列表,最终列表为['开始', 0, 1, 2, 3]。
19. 执行下方程序,输出结果是?( )
M = [2,2,2,1,2,1]for i in M:if i == 2: print('谢谢参与')
- C.谢谢参与(换行)谢谢参与(换行)谢谢参与(换行)谢谢参与
- D.[2](换行)[2](换行)[2](换行)[2]解析:列表M中有4个2,循环会触发4次print('谢谢参与'),每次输出后换行。
20. 已知 t = (3,7,5,9),程序能够正确运行的是?( )
- D.a = t[1]解析:元组仅支持访问操作,t[1]可获取第二个元素7;A/B/C均为修改元组的操作,元组不可变,会报错。
21. 代码打印的结果是?( )
s = "Python,Java,Go,Rust,JavaScript"print(s.split(','))
- A.['Python', 'Java', 'Go', 'Rust', 'JavaScript']
- B.['Python Java Go Rust JavaScript']
- C.['Python', '', 'Java', '', 'Go', '', 'Rust', '', 'JavaScript']
- D.报错解析:split(',')以逗号为分隔符分割字符串,生成包含各子串的列表,无多余空字符串。
22. 要删除列表 nums = [5,2,8,4] 中的元素 8,正确的操作是?( )
- D.nums.delete (8)解析:remove(元素)可直接删除列表中首次出现的指定值;B/C索引8超出范围,D列表无delete()方法。
23. 已知列表 lst = [10, 3.14, "python", (5, 8, 25)],执行 print(len(lst)) 后,输出结果是?( )
- D.7解析:len()统计列表顶层元素个数,lst包含4个顶层元素(整数、浮点数、字符串、元组),结果为4。
24. 已知字符串s = "Programming123",获取子串"123"的正确选项是?( )
- D.s[13:]解析:"Programming123"中,'1'在索引11,'2'在12,'3'在13,s[11:14]含头不含尾,恰好取到"123";B取到"321",C反转整个字符串,D仅取到"3"。
25. 执行以下代码后,最终字典info的值是?( )
info = {'fruit': 'apple', 'price': 5, 'color': 'red'}info['price'] = 6info['weight'] = 0.3
- A.{'fruit': 'apple', 'price': 5, 'color': 'red', 'weight': 0.3}
- B.{'fruit': 'apple', 'price': 6, 'color': 'red'}
- C.{'fruit': 'apple', 'price': 6, 'color': 'red', 'weight': 0.3}
- D.{'fruit': 'apple', 'price': 5, 'color': 'red'}解析:info['price']=6修改原有键的值,info['weight']=0.3新增键值对,最终字典包含4个键值对。
二、判断题(共10题,每题2分,共20分)
26. 使用sorted()函数对元组进行默认排序后,原元组的元素顺序会按升序排列。( )
错误解析:sorted()函数返回新的排序后列表,不会修改原元组(元组本身不可变)。
27. for语句内可以嵌套while语句使用,但while语句内不允许嵌套for语句使用。( )
错误解析:Python中循环语句可互相嵌套,for内可嵌while,while内也可嵌for。
28. 列表的sort()排序函数会改变原始列表顺序,而sorted()排序函数不会。( )
正确解析:sort()是列表内置方法,原地修改列表;sorted()是全局函数,返回新列表,原列表不变。
29. "{}喜欢{}".format("小明", "足球") 会生成 "小明喜欢足球"。( )
正确解析:format()按参数顺序填充占位符,结果符合预期。
30. 字典中的元素必须是成对出现的,因此无法单独输出字典的键,也无法单独输出字典的值。( )
错误解析:可通过字典.keys()获取所有键,字典.values()获取所有值,支持单独输出。
31. 在 Python 中,如果 while 循环的条件始终为 True,程序将陷入死循环,死循环在实际编程中没有用处。( )
错误解析:死循环可用于服务器监听、命令行交互等场景,结合break可控制退出,并非无用处。
32. 在Python中分支结构可细分为单分支结构,双分支结构和多分支结构,可根据任务要求选取不同的分支结构。( )
正确解析:Python分支结构包括单分支(if)、双分支(if-else)、多分支(if-elif-else),可按需选择。
33. 下列程序的输出结果为元组(1, 2, 3, 4, 5)。( )
t = (1, 2, 3, 4)t.append(5)print(t)
错误解析:元组不可变,无append()方法,执行t.append(5)会触发TypeError错误,无法输出结果。
34. st = '清泉石上流' print(st[::-1]) 代码会反序字符串,打印"流上石泉清"。( )
正确解析:切片[::-1]表示从末尾开始、步长-1遍历,可实现字符串反转。
35. 运行如下程序会打印出4、3、2,说法是否正确?( )
num = 5while num > 2: num=num-1 print(num)
正确解析:循环执行3次,num依次变为4、3、2并打印,当num=2时不满足num>2,循环结束。
三、编程题(共2题,共30分)
36. 双一流学员统计(14分)
题目要求
统计语文和数学成绩均≥90分的“双一流学员”,原始数据如下,最终输出学员姓名列表:
Name = ['豆豆', '小明', '呆宝', '小玉', '小五', '刀仔']Math = [96, 77, 93, 99, 84, 81]Chinese = [86, 87, 95, 90, 92, 94]
正确输出:['呆宝', '小玉']
参考代码
# 原始数据Name = ['豆豆', '小明', '呆宝', '小玉', '小五', '刀仔']Math = [96, 77, 93, 99, 84, 81]Chinese = [86, 87, 95, 90, 92, 94]# 初始化双一流学员列表good_student = []# 遍历所有学生(按索引匹配姓名和成绩)for i in range(len(Name)):# 判断语数成绩均≥90分if Math[i] >= 90and Chinese[i] >= 90: good_student.append(Name[i])# 输出结果列表print(good_student)
评分标准
- 正确定义Name、Math、Chinese三个列表;(3分)
- 条件为Math[i]≥90且Chinese[i]≥90;(1分)
37. 小学生体能测试项目分配(16分)
题目要求
根据性别和年级输出体测项目:
输入要求:两行输入,第一行性别(男/女),第二行年级(1-6整数);输出要求:一行输出对应体测项目。
样例输入:
女1
样例输出:
仰卧起坐
参考代码(简洁版)
# 获取输入gender = input() # 性别输入grade = int(input()) # 年级输入,转换为整数# 条件判断并输出结果if gender == '女':if1 <= grade <= 3: print('仰卧起坐')elif4 <= grade <= 6: print('500米跑步')elif gender == '男':if1 <= grade <= 3: print('引体向上')elif4 <= grade <= 6: print('800米跑步')
评分标准
- 正确判断女生1-3年级并输出“仰卧起坐”;(1分)
- 正确判断女生4-6年级并输出“500米跑步”;(1分)
- 正确判断男生1-3年级并输出“引体向上”;(1分)
- 正确判断男生4-6年级并输出“800米跑步”;(1分)
总结
- 核心知识点:本次考试重点考查列表/元组/字典的基础操作(索引、切片、增删改查)、循环(for/while)与分支(if-elif-else)结构、字符串处理(split/切片/format),其中元组不可变性、字典键的类型限制是高频易错点。
- 编程题关键:统计类题目需通过索引匹配多列表数据,条件判断类题目需理清多分支逻辑,确保边界值(如35℃、90分、3年级/6年级)判断准确。
- 易错点提醒:元组无修改/新增元素的方法、sorted()不修改原序列、字典通过键访问值而非索引、循环嵌套的合法性等需重点记忆。