每年6月的GESP认证报名一启动我就会被同一类问题刷屏“Python一级到底要学多少内容”“现在开始刷题还来得及吗”“网上的真题解析能不能信”作为带过不少一级考生的老手我的回答一直很直接Python一级的难点不在语法深度而在你有没有把考纲里的基础点挨个过一遍能不能在机考环境下把会写的代码稳定提交上去。这篇文章就把2025年6月这次认证的备考重点、样题解析、教材路线一次性讲清楚不管是零基础自学、家长陪练还是机构老师备课都能直接拿来用。1. 2025年6月Python一级考什么考纲速览与常见失分点1.1 考试形式与合格标准GESP编程能力等级认证的一级考试采用机考形式题型由客观题与编程题构成客观题覆盖语法概念和代码阅读编程题考察独立写代码的能力。考试时长通常在90分钟左右满分100分合格线一般划在60分。对第一次参加认证的考生来说这个结构意味着两件事第一客观题分数要靠日常积累临时抱佛脚能救的范围很有限第二编程题只要思路清晰哪怕有一两处小瑕疵也能拿到大部分测试点的分数所以编程题绝对不能放弃。提示不同批次的考试时长和合格标准以报名系统里的官方须知为准这里描述的是近几次认证的普遍情况适用于绝大多数考区。1.2 一级Python必考知识点清单一级的定位是“零基础入门”范围非常克制但克制不意味着简单。公开考纲和历年考生回忆中反复出现的内容主要集中在下面这张表里知识板块高频考点常见考查方式输入输出input()、print()、int()/float()str()、split()、f-string选择题判断类型编程题读写数据数据类型整数、浮点数、字符串、布尔值、type()判断表达式结果的类型运算符算术、比较、逻辑、整除//、取模%、幂运算**与优先级求表达式值、判断真假字符串索引、切片、len()、upper()/lower()、in、拼接代码阅读题、字符串编程题列表创建、索引、切片、append()/insert()、遍历、len()列表操作顺序题、简单统计题分支结构if/elif/else、比较运算、缩进条件判断、代码阅读循环结构for range()、while、break/continue循环次数、累加求和、枚举简单函数def、参数与默认参数、return函数调用结果、默认参数补全基础算法思路累加、计数、求最大最小、简单模拟编程题的核心逻辑一级一般不会考嵌套列表、字典、类这些进阶特性。如果你的复习教程里大篇幅出现这些内容说明它超纲了先跳过。把上面表格里的每个点都“运行过一遍”比泛泛地翻教材有用得多。1.3 最近几次考试中最容易丢分的三个地方第一个是input()的类型。input()返回的一律是字符串很多考生写完a input()下一行直接a * 2以为在做乘法结果得到字符串重复测试点大片失败。第二个是range()的边界。range(1, n)不包含n这是出题人最爱的陷阱稍不注意循环次数就会差一次。第三个是分支顺序。if的条件和elif的条件如果存在重叠谁在前谁先命中很多题目就是利用这一点设计的。这三个坑我在后面的样题里会反复提到请务必留意。2. 客观题样题拆解选择题与判断题的“答法”与“解法”为了把考点讲透我整理了几组按近年命题风格设计的模拟样题。它们不是原卷但覆盖了高频考点。做这些题的正确姿势是先独立思考写出答案和理由再对照后面的解析最后在电脑上把相关代码跑一遍。2.1 客观题的做题节奏客观题在一级考试中占比不低但它本质上是在考“概念是否清晰”。我建议的时间分配是客观题一共控制在25到30分钟内遇到卡壳的题先标记不要恋战把时间留给后面的编程题。做客观题时尤其要警惕那些“看起来眼熟但没跑过”的结论。比如字符串切片死记是记不牢的亲手print几次才稳。2.2 选择题样题A组基础语法题目1表达式7 // 2与7 % 2的值分别是 。A. 3和1 B. 3.5和0 C. 3和3 D. 1和3答案A解析//是整除运算符7//2得到商3%是取余运算符7除以2余1。在Python里这两个运算常常搭配使用本质上是“商和余数”的关系。顺便记住负数场景下结果会向负无穷取整比如-7//2等于-4但一级对负数的考查比较浅先把正数场景掌握扎实。题目2已知s information则s[2:5]的值是 。A. for B. inf C. orm D. info答案A解析Python的索引起始于0所以information的索引是i0n1f2o3r4m5a6t7i8o9n10。切片s[2:5]取索引2、3、4三个字符也就是for。这里最常犯的错误是把1当成第一个字符导致选项选成inf。做题时不妨在草稿纸上把索引号标出来宁可慢一点也不要凭感觉。题目3执行以下代码后最终列表lst的值是 。lst [1, 2, 3] lst.append(4) lst.insert(1, 9) lst.pop()A. [9, 1, 2, 3] B. [1, 9, 2, 3] C. [1, 2, 9, 3] D. [1, 2, 3, 9]答案B解析按顺序执行。append(4)让列表变成[1, 2, 3, 4]insert(1, 9)把9插入索引1的位置得到[1, 9, 2, 3, 4]pop()删除最后一项4最终是[1, 9, 2, 3]。这类题考查的是列表方法的作用位置和操作顺序务必把append、insert、pop、remove这几个方法在本地各跑一遍观察每一步的变化。题目4print(2 ** 3 ** 2)的输出结果是 。A. 64 B. 512 C. 256 D. 抛异常答案B解析幂运算符有两个容易忽略的特点一是连续幂运算时Python采用右结合即2 ** 3 ** 2等价于2 ** (3 ** 2)先算3的平方得9再算2的9次方得到512二是优先级高于乘除。很多同学会从左往右算成(23)**2得到64正好掉进出题人的陷阱。记住这个规则遇到连续幂运算先看结合方向。2.3 选择题样题B组逻辑与代码阅读题目5执行下面的代码输出结果是 。x 12 if x 10: print(A) elif x 5: print(B) else: print(C)A. A B. B C. C D. 什么都不输出答案A解析分支结构按从上到下的顺序匹配条件x12使得x10成立于是输出A后面的elif和else都不再执行。这种题的坑在于x同时满足“大于10”和“大于5”但程序只会命中第一个满足的分支。反过来如果题目把条件顺序调成x5在前、x10在后那输出的就是B而不是A。设计条件时一定要考虑互斥关系和顺序。题目6执行下面的循环后变量sum的值是 。sum 0 for i in range(2, 9, 3): sum iA. 9 B. 12 C. 15 D. 18答案C解析range(2, 9, 3)从2开始每次加3到9停止但不包含9所以取到的值是2、5、8求和得到15。range的边界规则是“起止含前不含后步长自己定”这是循环题最核心的考点。平时练习可以多试几组range比如range(2, 8, 3)取值2、5range(5, 0, -1)取值5、4、3、2、1把边界问题彻底搞清楚。题目7表达式3 2 and 4 3 or 1 1的值是 。A. True B. False C. 报错 D. 无法确定答案A解析先算比较运算3 2是True4 3是False1 1是True。逻辑运算符的优先级从高到低是not、and、or所以先算True and False得到False再算False or True最终得到True。这道题的价值在于提醒你不要被连写的逻辑表达式吓到运算顺序是确定的只要一步一步拆开就不会错。题目8已知函数定义如下则调用cal(5)的返回值是 。def cal(a, b3): return a bA. 5 B. 8 C. 报错 D. 15答案B解析函数定义中b带默认值3调用cal(5)时只传入ab使用默认值因此返回538。默认参数让函数可以有更灵活的参数数量但要注意调用时不写默认参数就会自动补值反过来如果你在调用时写了两个参数例如cal(5, 10)返回的就是15。一级对函数的考查基本到此为止能把调用过程和返回值理清楚就够了。2.4 判断题样题含答案与解析判断1input()函数读入的内容一定是字符串。答案对解析这是最高频的考点之一。即使用户输入了数字input()返回的也是字符串类型想要参与数学运算必须先用int()或float()转换。如果记忆不牢可以在本地输入数字并用type()查看立刻就能明白。判断2while True:循环体内如果没有break程序会一直运行下去。答案对解析True是永远为真的条件循环不会自然结束必须通过break强制跳出或者依赖条件变更与系统终止。写代码时如果出现while True一定要核查循环体内有没有break否则程序会卡死。判断3使用print(10, end)后下一次print会默认换行。答案错解析print的end参数默认是换行符\n如果改写成end就表示“打印完不换行”。所以下面这些打印会连成一行print(10, end)print(20)输出结果是1020。这个知识点在编程题输出格式里很常见尤其是要求同一行输出多个值的场景。判断4列表元素可以通过索引修改字符串不行。答案对解析列表是可变类型lst[0] 5是允许的字符串是不可变类型s[0] a会直接报错。这种“可变与不可变”的差异本质上决定了你能对数据做哪些操作需要分清。3. 编程题实战拆解三道典型题的满分写法3.1 在线评测的评分逻辑与常见失分点编程题不是“人工看代码打分”而是机器自动比对输出。每个测试点会给一组输入程序运行后的输出必须和标准答案逐字符一致多余的提示语、多余的空格、大小写不一致都可能导致零分。这一点必须从一开始就刻在脑子里不要写print(请输入一个整数)之类的提示文字让程序保持安静读什么输入就处理什么然后严格按题目要求的格式输出。编程题评分通常是部分通过制比如一道题有10个测试点通过7个就拿7个的分。这意味着就算你的代码只能处理部分情况也要大胆地把部分解法写上去千万别留空白。3.2 编程题第一题两数之和与差题目输入一行两个整数a和b用空格分隔。输出一行先输出ab再输出a-b两个数之间用一个空格分隔。输入示例10 3输出示例13 7参考代码a, b map(int, input().split()) print(a b, a - b)解析input().split()按空格把输入拆成字符串列表map(int, ...)把列表里的每个元素转成整数然后同时赋值给a和b。print支持一次输出多个值默认用空格分隔正好满足题意。这是输入输出题最标准的写法建议背下来。如果你还不习惯map也可以写成下面这样逻辑更直白s input().split() a int(s[0]) b int(s[1]) print(a b, a - b)第一题一般就是这种直接翻译题面的难度用来让考生适应机考环境争取一次性通过所有测试点。3.3 编程题第二题数字统计题目输入一个正整数n统计1到n之间有多少个整数既能被3整除又不能被5整除。输出统计结果。输入示例20输出示例5参考代码n int(input()) cnt 0 for i in range(1, n 1): if i % 3 0 and i % 5 ! 0: cnt 1 print(cnt)解析先读整数n然后用一个cnt变量作为计数器遍历1到n。条件i % 3 0判断能否被3整除i % 5 ! 0判断不能被5整除两者用and连接缺一不可。1到20之间符合条件的数有3、6、9、12、18一共5个注意15能被5整除不能计入。这道题的核心价值是“计数器模式”后续很多复杂统计题都是在这个基础上加条件。扩展思考如果题目改成“既能被3整除又能被5整除”条件就可以写成i % 15 0因为一个数能同时被3和5整除等价于能被15整除。平时做考级题时多问自己一句“这个条件还能不能换成更简洁的写法”对编程思维提升很有帮助。3.4 编程题第三题回文串判断题目输入一个不含空格的字符串s判断它正着读和反着读是否相同。相同输出YES不同输出NO。输入示例level输出示例YES解法一利用字符串切片s input().strip() if s s[::-1]: print(YES) else: print(NO)解法二手动对称比较s input().strip() n len(s) flag True for i in range(n // 2): if s[i] ! s[n - 1 - i]: flag False break print(YES if flag else NO)解析解法一利用s[::-1]把字符串反转然后直接和原字符串比较代码很短适合机考时快速作答。解法二不直接反转而是把第i个字符和倒数第i个字符逐一比对一旦发现不一致就标记False并跳出循环这是更接近“算法本质”的写法。两种写法在机考中都能通过但建议平时两种都练解法一考切片掌握程度解法二考对索引和循环边界的理解。特别注意strip()的作用是去掉字符串首尾可能存在的换行符机考读入时多一个换行符会导致比较失败。3.5 编程题的本地自测清单写完代码不是结束自测才是得分保障。我总结了一份固定清单第一输入里有空格分隔的多个值时确认用split()拆了第二边界值一定要测试比如n1、n0、空串、单字符、全是同一个字符的字符串第三输出的大小写和空格格式必须和题目完全一致第四先用题目的输入示例运行一遍再自己构造两到三组测试数据包括最极端的输入。这个过程看上去费时间但能直接避免提交后才发现低级错误。4. 备考教材与8周复习路线教材选择、刷题节奏、错题复盘4.1 教材选择的三个判断标准市场上Python入门书很多但不是每一本都适合考级。我的建议是不要只看书名有多“高级”而是拿起来翻目录重点确认三件事第一目录是否对齐一级考纲。一级需要覆盖的内容是输入输出、运算、字符串、列表、分支、循环、简单函数。如果这本书大篇幅在讲爬虫、图形界面、数据分析它适合项目实战不适合备考。第二例题是否有逐行解释。很多书代码堆了一堆但完全不解释为什么这么写学完后你不知道怎么迁移到新题目上。第三是否配有可运行的练习和模拟题最好能有一个跟着敲代码的本地环境。考级本质上是动手能力的检验只看不敲等于白学。另外还要提醒一点不要太迷信“厚教材”。一级的知识体量不大把一本20章的书啃完不如把核心章节的每个例子亲手运行一遍。4.2 考前8周复习计划参考把复习切成8周每一周目标清晰执行起来就不焦虑。下面这张表是按“零基础或基础薄弱”的情况设计的有一定基础的人可以把前两周压缩周次复习内容每日任务阶段目标第1-2周变量、数据类型、输入输出、运算符每天熟悉2-3个知识点敲遍教材中的例子能独立读入数据并打印结果第3周字符串与列表基础操作每天做10道切片/列表操作小题熟练理解索引与切片边界第4周分支结构与循环结构每天写3个if/for/while小练习能读懂循环次数和分支顺序第5-6周函数与综合复习完成一套覆盖全部考点的客观题找出自己的薄弱章节第7周编程题专项每天写2道编程题按自测清单检查形成稳定的编码答题流程第8周全真模拟限时完成一套模拟卷复盘错题适应考试时间分配这个计划的核心思路是“先铺语法再刷题最后模拟”。如果你只剩两周就把前六周的内容压缩成“查漏补缺”优先补输入输出和循环因为这两块几乎每张卷子都考。4.3 错题本怎么记才有用很多同学记错题就是把题目和答案抄在本子上考前翻一遍就完事这基本没用。我建议按“精简题干—我的答案—正确答案—错因—下次怎么避免”五栏来记。不需要抄完整题干用一句话说明考点就行。比如“2 ** 3 ** 2求值”写清楚当时选成了64深层次原因是不知道幂运算右结合下次遇到连续幂运算先看结合方向。关键是记录“错因”和“对策”而不是让自己变成一个抄写机器。每周末把本周错题重做一遍连续两次做对的直接划掉反复做错的重点标记。到了考前最后一周只看错题本里仍然标红的内容复习效率会高很多。5. 考前两周的自测清单与考场策略5.1 技术环境自测我遇到过不止一个考生平时在本地用某款编辑器写代码很顺手到了机考系统里连“提交代码”按钮都没找到白白浪费时间。所以考前两周一定要做一次环境自测熟悉机考系统的界面、代码提交方式、语言版本至少跑通一次完整的“读题—写代码—提交—看结果”流程。在本地练习时也尽量少依赖自动补全把常用写法练到不用查资料读一行整数、读一行两个整数、读多行整数、用f-string格式化输出。5.2 考场上的时间分配客观题控制在30分钟内完成没把握的先标记不要回头纠结。等你开始写编程题先花两三分钟把所有编程题都看一遍心里排个难度顺序从最有把握的开始做。一般来说第一道编程题偏简单应该把分拿全第二道题如果卡住了先把能处理的部分写上保证部分测试点通过第三道题实在没思路也要把自己的思考过程写成代码争取任何可能的分数。遇到逻辑卡住时一个很实用的技巧是print调试在关键位置把中间变量的值打印出来看看是哪一步不符合预期。虽然机考最终看输出但调试过程中打印的内容只要最终代码里删掉就行。最怕的是盯着屏幕想脑子里一片空白动手print几次问题往往会暴露出来。5.3 最后几句叮嘱不要试图背题和背答案。GESP这类等级认证考的是能力题目会换皮但考点不变。你背会某个答案不如理解它背后的知识点。编程题写完后多看一眼缩进是否统一、变量名是否写错、循环边界是否多一少一这些低级错误扣分最可惜。考前保证充足的睡眠带齐相关证件提前确认考场和机位。考试本身拼的是常态水平稳定发挥比临时突击更重要。我带过不少第一次参加认证的同学其中一个在考前一周还觉得列表切片很难我让他把每个切片例子都在编辑器里跑一遍观察print输出的差别一周后他反而觉得这类题最简单。一级编程能力认证本质上考的不是天赋而是“有没有把每个基础特性真正运行过、观察过”。你如果能把这篇文章里的样题全部在电脑上敲一遍把每个报错信息读一遍6月这次认证拿高分只是时间问题。