当前位置:首页>python>寒假Python四级备考日记(6):首次挑战二级真题,92分背后的“细节漏洞”

寒假Python四级备考日记(6):首次挑战二级真题,92分背后的“细节漏洞”

  • 2026-10-04 12:17:33
寒假Python四级备考日记(6):首次挑战二级真题,92分背后的“细节漏洞”
今天第一次用2025年12月Python二级真题进行实战测试,整体表现不错,单选题15道错3道,判断题10道错1道,两道编程题上机调试后完全符合预期,估算得分约92分。但错题反映出几个关键盲点,值得记录。

以下是做错的题目原文:

单选第2题,小杨最近为了备考GESP,开始看网络上关于网络知识的视频。其中提到计算机网络系统有不同的划分标准,其中之一就是按照地理覆盖的范围来划分。那他平时上学所在的教学楼内的网络是一个( )。

A. PANB. LANC. MAND. WAN

单选第11题下面Python代码执行后输出是( )。

num = 0while num <= 5:    num += 1    if num % 3:        continue    print(num, end='#')else:    print(num)

A. 3#6#B. 3#6#6C. 1#2#3#4#5#6#D. 1#2#3#4#5#6#6

单选第13题题目定义:一个数 N 是 M 的完整漂亮数,当且仅当同时满足以下三个条件:1. N 能被 M 整除;2. N 的某一位数字等于 M;3. N 的各位数字之和能被 M 整除。

给出的代码试图判断 N 是否为 M 的完整漂亮数,问以下说法正确的是( )。

N = int(input("请输入N,N必须是0或正整数:"))M = int(input("请输入M:M必须大于1小于等于9:"))Sum = 0          # 记录各位数之和Flag = False     # 记录N是否含有Mwhile N != 0:    num = N % 10    Sum += num    if num == M:        Flag = True    N //= 10if (N % M == 0) and (Flag == True) and (Sum % M == 0):    print(f"{N}是{M}的完整漂亮数")else:    print(f"{N}不是{M}的完整漂亮数")

选项:A. 代码能完成题目设定目标。B. 在 while 循环中 N 最终将变成0,因为代码 N% M 将总是满足条件,可以在 while 前增加一行代码 old_num = N,并将 N % M 改为 old_num % M,随后 print() 中的 {N} 改为 {old_num}。C. while 循环中 if 判断语句可以增加 else 子句,其内容为 Flag = False。D. 如果先后输入 0 和 3,则肯定会输出 0是3的完整漂亮数。

判断第四题

下面Python代码执行时,如果输入整数(包括负整数、0和正整数),其输出都将是 0。( )

N = int(input())while N:    N //= 10print(N)

我们来简要分析一下:

第2题错在计算机网络知识:教学楼网络属于局域网(LAN),需记住常见网络缩写(LAN/局域网Local Area Network,)(WAN/广域网 Wide Area Network)。

第11题考察 while-else 结构:循环正常结束时 else 会执行,因此在输出 3#6# 后还会打印一次 6,num % 3 为真(非零)时跳过打印, 有一个从整型转换为布尔值的过程。非零转换为True。答案为 B。

第13题暴露变量管理问题:原始输入 N 在循环中被“用光”变成0,后续判断必须使用副本,否则逻辑错误。

判断第4题看似简单,实则涉及整除边界。在正数的情况下,默认输入处理后最终 N 会变为0。但需注意为负数情况下的行为。例如负整数-123,如 -123 // 10 = -13(Python向负无穷取整),继续  -13//10=-2, -2//10=-1,-1//10=-1?等等,负数整除也是向下取整,因此会进入死循环。

这次二级真题实战,虽然总分不错,但精准暴露了四个容易被忽视的薄弱环节:

  1. 计算机网络基础不足,比如对网络类型的划分(LAN、WAN 等)不熟悉,英文缩写不清楚,而这类知识点在GESP和Python等级考试中已逐渐成为固定考点;
  2. 控制流理解不够精细,while-else 的触发条件、continue 的跳转逻辑、以及非零即真的布尔转换规则,稍有模糊就会导致逻辑误判;
  3. 程序状态管理意识弱,在处理输入数据时,未意识到原始值可能在循环中被“消耗”,缺乏保存副本的习惯,影响后续判断;
  4. 对负数整除行为存在误解,Python 的 // 是向下取整, 不是向零取整。例如: -7 // 3 = -3,而不是-2。这一特性直接影响循环终止条件和边界测试结果。

下一期,我们将继续刷二级真题,重点攻克这些“边角概念”。毕竟,四级之路,一级打基础,二级建框架,每一步都不能含糊,基础不牢,地动山摇。

互动时间:你或者孩子是否也曾被“负数整除”或“while-else”坑过?对 Python 的向下取整规则掌握了吗?欢迎留言分享你的经验!

最新文章

随机文章