计算机二级 Python 方向的备考指南

注:这是我在这个 python 教科书怎么样 - 闲聊吹水 - FreeMdict Forum的讨论。

计算机二级 Python 方向的备考指南

这个 2022 年新版的 计算机二级证书的教科书可以吗?
修编词典用的 python 技能是 python 的哪个分支?(我猜一门计算机语言应该有很多路径,比如数据抓取就可以写一本书,博大精深;计算机基础概念都不懂。)
这本书配套么
|500
一、可以阅读英语,但是计算机专有词汇看不懂,举例如下午喝咖啡休闲时候,看到一个词( read in parallel )的时候卡壳了。
二、计算机二级证书于我有用。
三、感觉正则、js、python(数据抓取、清洗、整理)等技能,对自制词典比较有帮助。对我来说痛点是搜 python dictionary 出来的不是 python 的计算机词汇。

首先,关于你的需求,建议你用中文互联网的资料学完 Python 基础后,看看 Python 官网的英文文档,或者看看大名鼎鼎的CS61A课程,看看真实的语境下怎么表达有关 Python 的概念。

然后作为一个考了 2 次的学渣,谈一些个人的看法吧:

|500

关于教材

关于教材,我推荐这里提到过的做社会科学研究的一定要熟练掌握一门编程语言 - 闲聊吹水 - FreeMdict Forum北理的嵩天老师[[北理工 Python 语言程序设计]](你问的教材以下统称《二级教程》),理由:

  1. 有专属的视频课:中国大学 MOOC在开课期间会有助教解决你的问题,B 站上也有人搬运完整的视频;
  2. 嵩天老师也是《二级教程》的编者,但二者编写风格不一样——尤其是框架结构上,语言风格也略有区别。我个人认为《Python 语言程序设计基础》更适合学习,而《二级教程》(可能)和谭浩强的 C++是一个风格(没读过谭前辈的书,这里是强调不好理解和无趣谭前辈不要打我 233),估计除了备考,没有谁会看得津津有味,而且排版也没有《Python 语言程序设计基础》好
  3. 2 本书在基础语法的部分基本是一样的,但是:《Python 语言程序设计基础》的后半部分介绍的 PIL、request 等库都不在 2018 年考纲范围,而《二级教程》,多了 2 个(在考纲范围内的)库:time、Wordcloud(标注的是可选……但我在备考刷题时一次都没有碰到过)
  4. 我觉得只求拿证的话,更值得买的东西是 NCRE 无忧考吧家的题库(某宝和某多多会比官网便宜 5 元)。我第一次考前买了《二级教程》简单翻了下,上考场了才发现怎么考的内容全是我没注意的小细节(反转列表、字典保存计算更新数据),而第二次考前刷完了他家的题库,考试抽到的就是一模一样的原题。至于没有拿到优秀,很可能是因为我选择题做得太差了吧……
  5. 个人感觉就算把教材背下来,也比不上自己动手敲一遍代码(哪怕抄)。我开始刷题的时候速度很慢,因为解题要用技巧是自己看书时没注意的地方。所以一开始基本就是:看一眼题目,想几分钟,把能写的代码都敲上然后提交看眼评分(这个很重要哇,没有老师告诉你写得对不对的话,怎么进步呢)。然后把标准答案的代码缝合到自己的代码上再提交(缝合的过程往往需要改很多地方,不是真的照抄,有时候也会用与答案不一样的写法),直到满分为止,找个地方把满分的代码保存好,睡前复习下。过几天把自己抄过的题再做一遍,这一遍尽量先不看答案,看看自己能做到哪一步,然后对照满分代码反思总结下,用注释#写在代码旁边。
  6. 实际上,我代码能力提高并不是在备考期间,而是自己折腾一些东西:比如读写、操作文本文件是我在修改叶峻峣前辈的一个Python 脚本时熟练掌握的;pyinstaller 是我在反复打包自己写的工具时形成的肌肉记忆;字典类型的强大是我在实习期间写代码才逐渐意识到的……等等,所以你最好找到一个让自己有持续的动力去啃代码的动机,不然恐怕无法说服自己跨过最难的入门阶段。最好的打开方式莫过于找一个简单、有趣、又实用的项目,边改边翻书了(比如论坛里那些制作词典的工具,再比如……「日本語非辞書形辞典」 233,这个项目的 v1、v2 版本代码真的比那些爬虫什么的要简单得多)

应试技巧

然后补充一些考试技巧:

  1. 提前熟悉 Python 默认的 IDLE 编辑器,没有补全功能写着真的很不习惯
  2. IDLE 可以调字体和背景颜色
  3. 考场的电脑也可以翻 Python 的官方文档,想不起来某个函数了可以翻一下,不过只有英语,没有中文。
  4. 反转列表元素:没有反转二叉树那么难,就是一句话:ls[-1::-1]
  5. 字典类型在考试中会用到的最有意思的操作是d[i]= d.get(i,0)+1,这个技巧在 2 本书讲解字典类型时都没有强调,都是在实际项目中直接抛出来的
  6. 有一道题会用到正则,大致要求是给《八十天环游地球》的 TXT 文档编写目录——这题用关键字提取,然后手动剔除不符合要求的数据也可以做出来。但这题还有其他更复杂的需求,手动剔除的话,时间真的不够。我第一次考试最后一道大题就是这个,只能说自己运气真的太差了,题库里面将近 20 道大题,只有这一道需要用正则,其他都是什么统计人物出场次数这种常规的文本处理
  7. 要提前背选择题,除了软件工程、数据库原理这样的公共知识,还会考 Python 的一些细碎知识,不准备下的话,估计会错很多——因为这个部分不合格的话,真的不划算

资源分享

最后还是分享一些可能有用的东西,不然也对不起你花时间听我哔哔这么久:

《Python 语言程序设计基础》PDF 版

  1. 用 ABBYY 处理过,想不起来某些东西可以用搜索快速找
  2. 手动编写了目录,方便跳转、阅读
  3. 有少量铅笔的批注,但只有几页

NCRE 题库练习代码

  1. 没有题目,分享出来只是觉得我的笔记可能会帮你从不一样的角度思考,顺便给一个进度参考
  2. 请忽略那些哈哈哈(囧),这个是我写给自己用的笔记,还没有系统的整理

补充实物的图片:
|500

|500
|500

标注了本书的意思是《Python 语言程序设计基础》没有提到而《二级教程》中有的内容,页码指的是实体书,不是 PDF
|500

read in parallel 的意思

如果你看的是这篇文章Splitting Large CSV files with Python - MungingData

Large CSV files are not good for data analyses because they can’t be read in parallel.  Multiple files can easily be read in parallel.

那么这里的read in parallel用稍微专业点的说法叫做“多线程处理文件”。

顺便找了一篇文章python 语法:多线程同时处理大量文件 - 知乎 (zhihu.com)