蓝桥杯python组备赛指南

时间:2025-03-25 12:27:44

文章目录

    • 前言
    • 刷题网站
    • idle操作
    • VScode
    • 常用标准库
      • math
      • datetime
    • 常见Q&A

前言

最近结束了比赛,我对比赛的过程进行了详细的复盘,并计划撰写一篇文章。这篇文章旨在为准备参加蓝桥杯的学弟学妹们提供帮助,我希望我的文章和笔记能对你们有所裨益。

我觉得我应该算是很普通的学生,python基础基本为0,因此这篇文章的适用对象应该是大部分普通人。对于这个比赛来讲,首先花几天时间基础知识掌握以后,就可以开始刷题了,从题目中总结知识。

蓝桥杯有很多赛道,加上每个人的目标不同,所需要付出的努力也不同。不过我觉得最重要的还是把前几道题拿到手,在此基础上,如果还学有余力,可以去体系化再学学难点。那么个人认为按照重要程度,知识点的排序应该是:

  • 模拟(至少刷题100道)
  • 排序
  • 贪心
  • 二分
  • 搜索(DFS、BFS)
  • 动态规划
  • 前缀和与差分
  • 并查集
  • 简单数论(排列组合、质因子分解、二项式定理等)

个人觉得把这些掌握,省一已经足够了,也需要至少4个月以上的时间。剩余的也就是后面的几道题了,也是难点,性价比没那么高,需要系统地学习数据结构与算法,比如:

  • 图论(最小生成树、图的连通性问题、欧拉回路、DFS序、网络流等)
  • 数论(生成函数、莫比乌斯反演等)
  • 高级字符串(拓展kmp、AC自动机、后缀自动机等)

刷题网站

  1. 官网题库
    题库 - 蓝桥云课

  2. C语言网(不是只能刷C语言,题目均支持C++、python、JAVA提交)
    编程入门题库_蓝桥杯ACM在线编程训练 - C语言网

  3. 洛谷
    洛谷

  4. AcWing
    题库 - AcWing

idle操作

按照官网文件来看,python编辑器只能用idle,相比pycharm 和 vscode 体验肯定差远了,但是还是要做充分的准备。(我当时的考点是已经安装了vscode,但是具体还是要视考点情况,因此还是要学一下idle的)

快捷键 功能
alt+/ 代码补全(前面出现过的变量或函数)
alt+p 上一次输入
alt+n 下一次输入
alt+3 批量代码注释
alt+4 批量取消代码注释
ctrl+[ 左移4个字符(多行适用)
ctrl+] 右移4个字符(多行适用)
tab 代码补全(提前在idlelib\修改弹出时间)
enter+ctrl+D 结束多行输入
ctrl+z 撤销上次输入
ctrl+shift+z 反撤销上次输入

VScode

功能 快捷键
多光标选中 Ctrl + D:选择下一个相同单词
Ctrl + Alt + Down:下移光标并添加新的光标
Ctrl + Alt + Up:上移光标并添加新的光标
注释/取消注释 Ctrl + /:切换单行注释
Shift + Alt + A:切换块注释
代码缩进 Ctrl + [:左缩进
Ctrl + ]:右缩进
代码块/函数导航 Ctrl + Shift + O:打开符号导航
Ctrl + G:跳转到特定行号
Alt + 左箭头:跳转到上一个光标位置(跳过整个变量名称)
Alt + 右箭头:跳转到下一个光标位置(跳过整个变量名称)
选中和剪切 Ctrl + Shift + L:选中所有匹配内容
Ctrl + Shift + ↑ / ↓:上下移动行
Ctrl + X:剪切选中的文本
Ctrl + C:复制选中的文本
Ctrl + V:粘贴剪切板中的内容
查找和替换 Ctrl + F:查找
Ctrl + H:查找并替换
Ctrl + Shift + F:全局查找
代码补全和建议 Ctrl + Space:触发代码补全
Ctrl + Shift + Space:查看参数提示
Ctrl + F5:运行当前文件
F5:开始调试
文件管理和版本控制 Ctrl + N:新建文件
Ctrl + S:保存文件
Ctrl + Shift + S:另存为
Ctrl + Z:撤销
Ctrl + Shift + Z / Ctrl + Y:重做
分屏显示 **Ctrl +\ **:分割编辑器窗口

常用标准库

比赛只能用自带的标准库,所以像numpy这种扩展库肯定用不了的,下面列出了一些常用的标准库:

math

  • 数学常数

:自然常数e的值,约等于2.71828

:圆周率π,约等于3.1415926

  • 数学函数

(x):返回 x 的平方根。

(x, y):返回 x 的 y 次方。

(x):返回 e 的 x 次方。

(x, base=):返回 x 的对数。base 参数为对数的底数,默认为自然对数 e。

(x)、(x)、(x):返回 x 的正弦、余弦和正切值。

(x)、(x)、(x):返回 x 的反正弦、反余弦和反正切值。

  • 数值操作

(x):返回不小于 x 的最小整数。

(x):返回不大于 x 的最大整数。

(x):返回 x 的整数部分。

(x):返回 x 的小数部分和整数部分,以元组形式返回。

(x):返回 x 的绝对值。

(x):返回 x 的阶乘。

(a, b):返回 a 和 b 的最大公约数。

datetime

import datetime
a=datetime.datetime.now()
b=datetime.date.today()
c=datetime.date(2024,2,23)
d=c+datetime.timedelta(days=1)
print(a)
print(b)
print(c)
print(d)
输出:
2024-05-13 16:01:49.449062
2024-05-13
2024-02-23
2024-02-24

还有itertools、calendar等,考虑到文章的易读性,很多知识还在笔记里。相信站在我的肩膀上,你能更快地实现目标,笔记获取地址(笔记全部是自己整理的,请尊重别人的劳动成果,低偿,一杯奶茶钱不到,想白嫖的就算啦~):
蓝桥杯python组备赛笔记(超详细版)

常见Q&A

  1. 赛道应该选择C++、Java还是python啊?
    如果都没学过,只学过c语言,那么建议还是python或C++,其余的,肯定是报自己擅长的啦。
  2. 一般准备多久能拿省三或省二?拿奖外 别的收获?
    我个人觉得无论是研究生组或A组的话,从0开始至少需要2个月左右的时间,而且是每天都学,其余的BC组应该1个月左右。蓝桥杯奖项设置是:省一(10%)、省二(20%)、省三(30%),所以努力2个月加个综测分应该还是比较划算的,最重要的是在这个过程中,对于一门编程语言的入门,会学到很多东西。大多数人内驱力还是比较弱的,相比没有竞赛的压力的自学编程语言,报名一个编程比赛 后的自学更有动力,自己也更自律!!!
  3. 刷题越刷越觉得自己是个废物,咋办?
    其实这也是我的真实感受,刷一个新的专题,自己就会严重受挫,现在看来,可能学习的过程就不是那么舒服的。但是李笑来老师告诉过我:
    一切都是心理建设
    因此,自己需要及时地钝感,哪怕是一道题,安慰自己说:搞明白都是巨大的提升;每一部分的都要练透。我也经常对自己说:学习任何东西都是需要耐心的,也是孤独寂寞的,但是挺过去,学会后自己的世界竟然有所不同。相信我,你并不孤独!!!

Location:江南大学,无锡,中国
Date: 2024/05/13