Python 认证 30 天备考路线:PCEP 与 PCAP 用 Practical Python 怎么练
【免费下载链接】practical-pythonPractical Python Programming (course by @dabeaz)项目地址: https://gitcode.com/gh_mirrors/pr/practical-python
这篇文章写给有少量编程经验、准备报考 Python 认证的人,以及零基础想先拿下 PCEP 的人。用开源项目 Practical Python 作教材,30 天讲清选级、知识点、文件练习和冲刺安排,读完后你手里是一份能直接执行的计划。
先判断你该考哪一级
备考第一步是选对级别,选错会浪费一半精力。
- PCEP(入门级程序员):面向零基础或只写过几行代码的人。考试范围是基础语法、数据类型、控制流和简单函数,报考没有前置要求。
- PCAP(助理级程序员):面向有 1-2 年 Python 经验、能独立写小程序并调试的人。在 PCEP 基础上增加面向对象、模块组织、异常处理和生成器。
- 更高级的PCPP覆盖对象模型与装饰器,对
Notes/07_Advanced_Topics/目录的内容还不熟的话,暂时不要报。
考试到底考什么
抛开题型,考的就是三项能力:数据操作、对象组织、函数与异常。
PCEP 基础题怎么拿稳:元组、字典、列表
- 元组是不可变记录,解包写法
name, shares, price = t是高频考点。 - 字典按键取值;直接迭代得到键,取键值对要用
items()。 - 从文件读出的数字列全是字符串,必须先经
int()、float()转换。 - 赋值是引用绑定:两个变量名可以指向同一个列表对象。
a = [1, 2, 3] b = a # b 与 a 指向同一个列表 b.append(4) print(a) # [1, 2, 3, 4] record = ('GOOG', 100, 490.1) name, shares, price = record print(f'{shares * price:.2f}')PCAP 面向对象部分怎么复习:类、继承与浅拷贝
- 类是组织属性和行为的模板,
__init__负责初始化实例属性。 - 属性查找顺序:先实例,再类。
- 继承复用父类方法,子类可覆盖同名方法。
- 浅拷贝只复制外层容器,内层对象仍被共享,常和列表复制结合出题。
class Portfolio: def __init__(self, holdings): self.holdings = holdings def total_cost(self): return sum(s.shares * s.price for s in self.holdings)函数与异常:PCAP 爱考的参数与 try/except
- 可变默认参数值在多次调用间共享,是高频陷阱。
try/except只捕获预期的异常类型,不要写裸except:。- 自定义异常继承
Exception,用于业务层面的错误上报。
def convert(text): try: return int(text) except ValueError: return None拿项目文件练手 📚
项目把材料分成两部分:Notes/供阅读,Work/供编码。建议按这个顺序练:
- Notes/02_Working_with_data/01_Datatypes.md:先读元组与字典的区别,示例就是考试同款股票记录。
- Work/bounce.py:循环与递推计算,热身用。
- Work/pcost.py(练习 1.27):读取 Data/portfolio.csv 算总成本,练文件读取和类型转换。
- Work/report.py(练习 2.4):把持仓数据排成表格输出,练 f-string 格式化。
- Work/fileparse.py(练习 3.3):把文件读取改成通用函数,练函数设计。
- Notes/04_Classes_objects/01_Class.md:进入类部分,把前面的成本计算改写成类。
冲刺时间表 ⏱
第 1 周
- 通读 Notes/01_Introduction 的 8 个小节,完成 Work/bounce.py 和 Work/mortgage.py 里的练习。
- 读 Notes/02_Working_with_data/01_Datatypes.md,把元组和字典的每个例子在控制台逐行跑一遍。
第 2 周
- 在 Work/pcost.py 中读取 Data/portfolio.csv 算出总成本,并和手算结果对账。
- 改 Work/report.py 输出报表,随后读 Notes/04_Classes_objects/01_Class.md 把它重写成类版本。
考前 3 天
- 第 1 天:把下文“高频错误”逐条在控制台复现一遍。
- 第 2 天:重跑 Work/fileparse.py,核对解析逻辑和出错分支。
- 第 3 天:做一套往年份选择题,只复盘错题。
高频错误 ⚠️
字符串直接参与算术错误:row[1] * row[2],两者都是 str。 后果:抛出TypeError: can't multiply sequence by non-int of type 'str'。 正确:先转换再计算:int(row[1]) * float(row[2])。
以为b = a是复制错误:b = a后修改 b,认为 a 不受影响。 后果:两者指向同一个列表,改一个等于改两个。 正确:b = a[:]或b = list(a)。
逐个修改元组错误:t[1] = 75。 后果:TypeError: 'tuple' object does not support item assignment。 正确:构造新元组替换:t = (t[0], 75, t[2])。
可变默认参数错误:def collect(items=[])。 后果:多次调用共享同一个列表,元素不断累积。 正确:def collect(items=None),在函数体内创建列表。
认证考试的题目不深,考的是你的手有没有把这些路径跑过。现在就去把 Work/pcost.py 跑起来,先让第一版算出总成本。
【免费下载链接】practical-pythonPractical Python Programming (course by @dabeaz)项目地址: https://gitcode.com/gh_mirrors/pr/practical-python
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考