大家好,我是小宇的爸爸老张。过去二十年一直在做软件开发,写过C++、golang,也用Python做过不少项目。这个寒假,我决定陪儿子一起备战全国青少年编程等级考试(Python四级),并用公众号记录我们的学习过程。既是复盘,也是分享。我们计划用15–20篇博客,全程记录这段学习旅程:包括错题分析、学习资源整理和心得反思等等。前两天我们分别完成了选择题和判断题的专项练习,整体情况不错,但也暴露出一些概念模糊的地方。今天,我们正式进入一级考试的第三大题型——编程题。我特意从2025年12月的Python一级真题中拿出两道编程题打印出来,要求孩子先用笔在纸上手写代码,写完后再在电脑上输入、运行并调试。
两道题分别是《小杨的爱心快递》(13行代码逻辑)和《手机电量显示》(约10行,含简单循环与条件判断)。孩子很认真地在草稿纸上逐行书写,不到20分钟就完成了。但当我让他把代码输入电脑验证时,问题立刻浮现出来,其实理解知识点,但还没真正掌握写法。
第一题里,他需要读取一个数值作为快递重量。结果他写下这样一行代码:int(V) = input()。乍看之下,似乎思路是对的,他知道要处理数字,也知道要用 input() 获取用户输入。但问题在于,变量赋值的方向完全反了。在Python中,变量名必须在等号左边,而 input() 返回的是字符串,不能直接当数字用。我坐下来跟他一起分析:“你看,input() 是一个函数,它‘吐’出一个字符串,我们要先把它转换成数字,再放进变量里。” 于是我们一起把代码改成 V = float(input())。之所以用 float 而不是 int,是因为题目没限定重量必须是整数,保留小数更稳妥。这个细节看似微小,却是从理解概念走向正确实现的关键一步。
第二题的问题更隐蔽。他在循环里想跳过某个状态,打算用 continue,却手误写成了 continu。少了一个字母“e”。程序一运行就报错,他一开始还以为是逻辑错了,反复检查条件判断。我们一起看错误提示:“SyntaxError: invalid syntax”,然后逐行排查,最终定位到那个拼写错误。修正之后,程序立刻顺利运行:输入不同电量值,能正确输出“R”(低电量)、“L”(高电量)或具体数字。这件事让我想起自己刚学编程时,也常因一个分号、一个括号折腾半天。
这两道题做完,我更加确信:选择题和判断题考的是知识点,而编程题考的是知识网。孩子在做选择题时,能准确选出“input() 返回字符串”“range(10) 不包含10”这样的选项,说明他记住了规则。但一到要自己组织完整程序,只要有一个环节模糊——比如赋值方向、类型转换顺序、关键字拼写、缩进层级,整个逻辑就可能崩塌。这正是编程学习中最容易被低估的鸿沟:看别人写,觉得简单;轮到自己写,处处卡壳。
作为有多年开发经验的人,我原本以为这些基础题不会有问题。但陪孩子做的过程反而提醒了我:日常工作中我们依赖IDE自动补全、调试器即时反馈,甚至团队Code Review,早已弱化了对语法细节的敏感度。而对孩子来说,恰恰需要在没有这些辅助的情况下,建立起对语言规则的精确肌肉记忆。
接下来,我们将会做一套完整的Python一级编程真题卷,模拟真实考试的时间和要求。同时,我也在建一个“错题清单”,把每次错题及知识点都记录下来,定期回顾。毕竟我们的目标是四级,但地基必须从一级开始一砖一瓦夯实。
如果你也在陪孩子准备Python考级,欢迎关注我们的系列更新。我正在整理严格对应考试题型(仅含选择、判断、编程三类)、已去除图形题的练习资料,有需要的朋友可以私信留言。
最后留个小互动:你家孩子在写代码时,最容易犯哪类低级的错误?是拼写?缩进?还是把等号写成双等号?欢迎在评论区一起聊聊,咱们互相避坑,共同进步!