阶段一:Python 基础语法
常见问题 & 解决方案:
1. 变量不需要声明类型,感觉不习惯
-
问题描述:来自强类型语言的学习者,容易不适应动态类型。
-
解决方案:多打印类型(
type()
)、使用 IDE 提示和类型注解(x: int = 5
)帮助熟悉。
2. 缩进报错频繁
-
解决方案:
-
Python 严格依赖缩进,推荐统一使用 4 个空格。
-
不要混用 tab 和空格,使用 PyCharm、VS Code 等 IDE 自动格式化。
-
3. 输入输出格式不熟
-
解决方案:
-
掌握
input()
与print()
,格式化推荐使用f-string
:f"Hello {name}"
。
-
阶段二:流程控制与函数
常见问题 & 解决方案:
1. 条件语句书写混乱
-
解决方案:多练习
if-elif-else
和布尔运算,画流程图梳理逻辑。
2. for、while 循环使用不清楚
-
解决方案:
-
for x in range(n)
是最常见用法,range(start, stop, step)
要熟悉。 -
while
循环需注意退出条件,防止死循环。
-
3. 函数作用域不清楚
-
解决方案:
-
理解局部变量与全局变量,熟悉
global
、nonlocal
关键字的使用。
-
阶段三:数据结构与内置函数
常见问题 & 解决方案:
1. 列表、元组、字典、集合傻傻分不清
-
解决方案:
-
多做练习,构造实际数据,记住:
-
list
: 可变、可重复; -
tuple
: 不可变; -
set
: 唯一性; -
dict
: 键值对。
-
-
2. 列表推导式看不懂
-
解决方案:
-
拆分成普通 for 循环进行理解;
-
多练习嵌套推导式,观察简洁性与表达能力。
-
3. 可变类型作为默认参数导致奇怪现象
-
问题描述:函数默认参数值为列表/字典导致意外共享。
-
解决方案:
def foo(lst=None):
if lst is None:
lst = []
阶段四:模块与文件操作
常见问题 & 解决方案:
1. 导入模块报错
-
解决方案:
-
确认模块名正确,是否在当前目录或安装目录;
-
使用
sys.path.append()
手动添加路径调试。
-
2. 文件路径错误频繁
-
解决方案:
-
使用
os.path.join()
兼容不同操作系统; -
使用
with open(file, 'r')
自动关闭文件,避免忘记close()
。
-
阶段五:面向对象编程(OOP)
常见问题 & 解决方案:
1. self 的作用不理解
-
解决方案:self 是对象自身的引用,用于访问实例变量和方法。
2. 类和对象概念模糊
-
解决方案:
-
用实际案例建模,比如“学生”类(属性:姓名、成绩,方法:打印成绩)。
-
3. 继承、多态使用不熟
-
解决方案:
-
编写“动物叫声”案例,子类重写父类方法,调用方式统一体现多态。
-
阶段六:函数式编程与异常处理
常见问题 & 解决方案:
1. lambda、map、filter 不会用
-
解决方案:
-
多练列表变换场景练习,例如
map(lambda x: x*2, list)
。
-
2. try-except 异常捕获不全
-
解决方案:
-
明确不同异常类型,比如
ZeroDivisionError
、ValueError
; -
推荐精确捕获,而非
except:
全兜。
-
阶段七:模块化与第三方库
常见问题 & 解决方案:
1. pip 安装失败或版本不兼容
-
解决方案:
-
使用虚拟环境(
venv
/conda
)隔离项目依赖; -
添加国内源提高安装成功率,如
-i https://pypi.tuna.tsinghua.edu.cn/simple/
。
-
2. 常用库不会用
-
推荐必学库:
-
requests
:HTTP 请求; -
pandas
:数据分析; -
matplotlib
/seaborn
:数据可视化; -
numpy
:数值计算; -
flask
/django
:Web 开发。
-
阶段八:高级应用:爬虫、Web、数据分析、自动化
常见问题 & 解决方案:
爬虫:
-
反爬机制多,爬不下来
-
加 headers、随机 UA、加代理、加延时,使用
selenium
或playwright
对抗 JS 渲染。
-
Web 开发:
-
后端路由混乱、模板渲染出错
-
理解 RESTful 结构,规范 URL;
-
使用 Jinja2 模板 + Flask 初学更轻松。
-
数据分析:
-
pandas 报错频繁、数据处理混乱
-
学习
df.head()
、df.describe()
、df.info()
三件套; -
掌握
groupby()
、merge()
、pivot_table()
是关键。
-
自动化脚本:
-
路径、定时执行、权限问题
-
使用
os
、subprocess
控制系统; -
Windows 用 Task Scheduler、Linux 用 crontab 定时运行。
-
阶段九:部署与项目实战
常见问题 & 解决方案:
1. 部署报错或依赖找不到
-
解决方案:
-
使用虚拟环境;
-
统一依赖版本,写好
requirements.txt
; -
多使用 Docker、Gunicorn + Nginx 等现代部署方案。
-
2. 项目结构混乱
-
解决方案:
-
遵循合理的项目结构,如:
├── app.py ├── static/ ├── templates/ ├── config.py └── utils/
-
拆分模块,按功能分文件。
-