1. 一页纸核心语法(必会)
# 变量与类型x=10# intname="Alice"# strpi=3.14# floatis_ok=True# boolitems=[1,2,3]# listinfo={"a":1}# dictnums=(1,2)# tuples={1,2,3}# set# 条件ifx>5:print("big")elifx==5:print("equal")else:print("small")# 循环foriinrange(5):# 0-4print(i)foriteminitems:print(item)whilex>0:x-=1# 函数defadd(a,b=10):# b 有默认值returna+b# 类classDog:def__init__(self,name):self.name=namedefbark(self):print(f"{self.name}says woof")# 模块与导入importmathfromdatetimeimportdatetime2. 高效技巧(提升编码速度)
✅ 列表推导式
# 普通写法squares=[]foriinrange(10):squares.append(i*i)# 推导式squares=[i*iforiinrange(10)]even=[iforiinrange(20)ifi%2==0]✅ enumerate 带索引遍历
fruits=["apple","banana","cherry"]foridx,fruitinenumerate(fruits):print(idx,fruit)# 0 apple ...✅ zip 同时遍历多个序列
names=["Alice","Bob"]scores=[90,85]forname,scoreinzip(names,scores):print(name,score)✅ 解包(Unpacking)
a,b,*rest=[1,2,3,4,5]print(a,b,rest)# 1 2 [3, 4, 5]first,*middle,last=[1,2,3,4]✅ f-string 格式化
name="Tom"age=25print(f"My name is{name}, age{age}")print(f"计算:{age*2}")✅ with 自动管理资源
# 文件操作withopen("file.txt","r")asf:content=f.read()# 自动关闭文件,无需 f.close()✅ 常用内置函数
len,sum,max,min,sorted,reversed,map,filter,any,all✅ collections 模块
fromcollectionsimportCounter,defaultdict,deque# 计数器cnt=Counter("hello")print(cnt)# {'l': 2, 'h': 1, 'e': 1, 'o': 1}# 带默认值的字典d=defaultdict(list)d["key"].append(1)✅ 生成器(懒加载,省内存)
defgen():foriinrange(3):yieldiforxingen():print(x)✅ 装饰器(快速扩展函数)
deftimer(func):importtimedefwrapper(*args,**kwargs):start=time.time()result=func(*args,**kwargs)print(f"耗时:{time.time()-start:.4f}s")returnresultreturnwrapper@timerdefslow_func():time.sleep(1)3. 常见坑(避雷)
| 坑 | 错误示例 | 正确做法 |
|---|---|---|
| 可变默认参数 | def f(lst=[]) | def f(lst=None): if lst is None: lst=[] |
| 浅拷贝 | b = a修改 b 影响 a | b = a.copy()或copy.deepcopy |
| 全局变量 | 函数内直接修改全局变量 | 加global x声明,或改用返回值 |
| 缩进混用 | 空格和 Tab 混用 | 统一用 4 个空格 |
isvs== | a is b判断身份,==判断值 | 字符串/数字比较用== |
| 遍历时修改列表 | for i in lst: lst.remove(i) | 用列表推导或遍历副本 |
4. 速成路线(建议 3~7 天)
第 1 天:基础语法 + 刷题
- 学变量、条件、循环、列表/字典操作
- 在 LeetCode 简单题或 Python 练习网站刷 10 道题
第 2 天:函数、文件、异常、模块
- 写一个处理文件的小脚本,比如统计单词频率
第 3 天:面向对象 + 常用库
- 了解类、继承
- 学
requests(HTTP)、pandas(数据分析)、os/sys
第 4 天起:做真实项目
- 爬虫:爬取网页数据存成 CSV
- 自动化:批量重命名文件、发送邮件
- Web:用 Flask 写一个简单 API
- 数据分析:用 pandas 处理 Excel/CSV
5. 推荐资源
- 官方文档:docs.python.org(权威,速查)
- 菜鸟教程:runoob.com/python3(中文入门)
- 廖雪峰 Python:liaoxuefeng.com(系统但稍长)
- Real Python:realpython.com(英文,技巧丰富)
- 练习:LeetCode、HackerRank、CodeWars
最后的关键心法
- 不要试图记住所有语法,用到时查文档即可。
- 每天写代码,哪怕 30 分钟,比只看视频有效 10 倍。
- 遇到报错先读最后一行,那是真正的错误原因。
- 多拆解别人的代码,GitHub 上有海量项目可以模仿。
动手写起来,一周就能上手 Python!