Skip to content

1. 函数基础

你已经学会:

  • 使用 def 定义函数
  • 调用函数
  • 理解参数和返回值的基本概念
  • 知道函数是为了封装重复逻辑

2. 变量作用域

你已经学会:

  • 局部变量:定义在函数内部,只能在函数内部使用
  • 全局变量:定义在函数外部,整个文件中通常可用
  • 函数里可以读取全局变量
  • 函数里如果要修改全局变量,要用 global
  • 函数参数本质上也是局部变量

重点结论:

  • 函数内定义的变量,默认是局部变量
  • 函数外定义的变量,默认是全局变量
  • 修改全局变量时要写 global

3. 文件操作

你已经学会:

  • open() 打开文件
  • with open(...) as f: 是推荐写法
  • r 表示读取
  • w 表示写入,会覆盖原内容
  • a 表示追加,不会清空原内容
  • read() 读取全部内容
  • readline() 读取一行
  • readlines() 读取所有行并返回列表
  • write() 把内容写入文件

重点结论:

  • read():读全部
  • readline():读一行
  • readlines():读成列表
  • write():写入内容

4. 模块和包

你已经学会:

  • 模块:一个 .py 文件
  • 包:装多个模块的文件夹
  • import 模块名 导入整个模块
  • from 模块名 import 函数名 单独导入某个功能
  • 能理解包路径导入

重点结论:

  • 模块是 .py 文件
  • 包是管理多个模块的文件夹
  • import 是导入别人写好的代码来用

5.面向对象基础

你已经学会:

  • class 定义类
  • 对象是根据类创建出来的实例
  • init 是初始化方法
  • self 表示对象自己
  • 属性是对象的数据
  • 方法是对象的功能
  • 能分清类、对象、属性、方法

重点结论:

  • 类像模板
  • 对象是模板创建出来的具体东西
  • self.name 这类通常是属性
  • def xxx(self) 定义的是方法

6. 继承、重写、super、多态

你已经学会:

  • 继承:子类可以直接获得父类的属性和方法
  • 方法重写:子类写同名方法,覆盖父类方法
  • super():在子类中调用父类的方法或 init
  • 多态:同样的方法,不同对象调用时有不同表现

重点结论:

  • 继承是复用代码
  • 重写是改写父类行为
  • super().init(...) 常用于继承父类属性
  • 多态的核心是“同样调用,不同结果”

7. 异常处理

你已经学会:

  • try 放可能出错的代码
  • except 处理错误
  • else 表示没有出错时执行
  • finally 表示无论是否出错都执行
  • 可以写多个 except 处理不同异常
  • raise 可以主动抛出异常

常见异常你已经接触过:

  • ZeroDivisionError
  • ValueError
  • FileNotFoundError
  • TypeError
  • NameError

重点结论:

  • 出错走 except
  • 不出错走 else
  • finally 一定执行
  • raise 是自己主动制造异常

8. 综合使用:类 + 文件 + 异常

你已经开始理解把多个知识点连起来使用:

  • 用类保存学生信息
  • 用函数检查分数是否合法
  • 用 raise 主动报错
  • 用 try/except 捕获错误
  • 用文件操作保存数据

你已经接触过这样的程序思路:

  • 输入姓名和分数
  • 检查分数范围
  • 合法就写入文件
  • 不合法就提示错误

这说明你已经不只是学单个知识点,而是在学“怎么组合写程序”。

9. JSON 基础

你已经学会:

  • json.dumps():Python 数据转 JSON 字符串
  • json.loads():JSON 字符串转 Python 数据
  • json.dump():把 Python 数据写入 JSON 文件
  • json.load():从 JSON 文件读取数据
  • ensure_ascii=False 的作用是让中文正常显示
  • 字典适合表示一个对象的数据
  • 列表里放多个字典,适合表示多个对象的数据

重点结论:

  • dump/load 是操作文件
  • dumps/loads 是操作字符串
  • JSON 读回来后得到的是 Python 的字典或列表,不是自定义对象

10. 对象和 JSON 的关系

你已经学会:

  • 自定义对象不能直接当作普通 JSON 数据使用
  • 通常先把对象转成字典再保存
  • 对象.dict 可以拿到对象属性组成的字典
  • 多个对象保存时,通常是“列表里放多个字典”
  • JSON 读回来后,如果想变回对象,要手动重新创建对象

重点结论:

  • 对象 -> 字典 -> JSON
  • JSON -> 字典/列表 -> 对象

11. 路径和 os 基础

1. os 基础
认识了 os 模块的作用:用来和操作系统交互,常用于目录、文件、路径相关操作。

重点内容:

  • os.getcwd():获取当前工作目录
  • os.listdir():列出当前目录下的文件和文件夹
  • os.mkdir():创建文件夹
  • os.remove():删除文件
  • os.rmdir():删除空文件夹
  • os.chdir():切换工作目录

理解重点:

  • os 偏向“操作系统动作”
  • 经常和文件、目录、路径一起使用

2. os.path 路径处理
学习了 os.path 主要用于处理路径。

重点内容:

  • os.path.exists(path):判断路径是否存在
  • os.path.isfile(path):判断是不是文件
  • os.path.isdir(path):判断是不是文件夹
  • os.path.join(a, b):拼接路径
  • os.path.abspath(path):获取绝对路径
  • os.path.basename(path):获取最后一部分,一般是文件名
  • os.path.dirname(path):获取目录部分
  • os.path.splitext(path):分离文件名和扩展名

理解重点:

  • exists() 只判断存不存在
  • isfile() 和 isdir() 是进一步判断类型
  • join() 比手动拼接字符串更规范

3.** pathlib **基础
知道了 pathlib 是更现代的路径处理方式,比 os.path 更清晰。

重点内容:

  • from pathlib import Path
  • Path("D:/data") / "a.txt":拼接路径
  • p.exists():判断路径是否存在
  • p.is_file():判断是不是文件
  • p.is_dir():判断是不是文件夹
  • p.name:文件名
  • p.stem:主文件名
  • p.suffix:扩展名
  • p.parent:父目录
  • p.mkdir():创建目录
  • p.read_text() / p.write_text():读写文本

理解重点:

  • pathlib 也是处理路径
  • 和 os.path 相比更面向对象、更现代

12. 异常处理

学习了异常处理的基本作用:让程序出错时不直接崩掉,而是按设定方式处理。

重点内容:

  • try
  • except
  • else
  • finally
  • except Exception as e

常见异常:

  • ZeroDivisionError
  • FileNotFoundError
  • IndexError
  • KeyError
  • ValueError
  • TypeError

理解重点:

  • try 放可能报错的代码
  • except 处理异常
  • else 在没有异常时执行
  • finally 无论是否报错都会执行

13. requests 和 API 调用

开始系统理解 Python 如何请求接口。

重点内容:

  • requests.get(url):发送 GET 请求
  • requests.post(url):发送 POST 请求
  • response.status_code:查看状态码
  • response.text:查看文本内容
  • response.json():把返回的 JSON 转成 Python 对象
  • params=:给 GET 请求传参数
  • json=:给 POST 请求传 JSON 数据
  • timeout=:设置超时时间
  • raise_for_status():状态码异常时主动报错

理解重点:

  • GET 常用于获取数据
  • POST 常用于提交数据
  • 调接口的本质是:发送请求 -> 拿到返回 -> 解析 JSON -> 取值

14.pip / venv / requirements

1. pip

理解了 pip 的作用:

  • 用来安装和管理 Python 第三方库
  • 常见命令:
python
python -m pip install requests
python -m pip show requests
python -m pip list

2. venv

理解了 venv 的作用:

  • 给每个项目创建独立的 Python 环境
  • 不同项目的库互不影响
  • 避免把库都装到全局 Python 里

实际操作过:

python
py -m venv .venv
.venv\Scripts\activate.bat

3. requirements.txt

理解了 requirements.txt 的作用:

  • 记录当前项目依赖的库和版本
  • 换电脑或重新配置环境时可以直接复用

实际操作过:

python -m pip freeze > requirements.txt

4、环境相关关键理解

今天比较重要的一个收获是:

全局环境 和 虚拟环境 是两套独立环境。

具体理解为:

  • 全局 Python 里装的包,不等于 .venv 里也有
  • .venv 里安装的包,也不会自动跑到全局环境
  • 进入虚拟环境后,优先使用:python -m pip

而不是只盯着 py -m pip。

15、requests 基础

1. 发送 GET 请求

学习并跑通了最基础的接口请求:

python
import requests

url = "https://jsonplaceholder.typicode.com/todos/1"
response = requests.get(url)
print(response.status_code)
print(response.text)

理解了:

  • requests.get(url) 是发送 GET 请求
  • response.status_code 是状态码
  • response.text 是服务器返回的原始文本

2. response.json()

学习了:

python
data = response.json()

理解了:

  • response.json() 会把返回结果转成 Python 数据
  • 返回结果通常是:
    • dict
    • list

16、JSON 取值

1. 字典取值

已经会:

python
data["title"]
data.get("title")

理解了:

  • data["key"]:键不存在会报错
  • data.get("key"):键不存在不会报错,会返回 None
  • data.get("key", "默认值"):可以设置默认值

2. 列表取值

已经会:

python
data[0]
data[0].get("title")

理解了:

  • 如果接口返回的是列表,就先用下标取元素
  • 再对元素里的字典取值

3. 嵌套结构取值

已经会:

python
data["user"]["info"]["age"]
data.get("user", {}).get("info", {}).get("city")

理解了:

  • JSON 数据可能是一层套一层
  • 大模型 API 返回值通常就是这种嵌套结构

17、异常处理基础

今天学习了用 try/except 包住请求代码:

python
try:
response = requests.get(url, timeout=5)
data = response.json()
except requests.exceptions.RequestException as e:
print("请求出错了:", e)
except ValueError as e:
print("JSON 解析出错了:", e)
except Exception as e:
print("其他错误:", e)

当前理解:

  • RequestException:处理请求相关问题
  • ValueError:处理 JSON 解析问题
  • Exception:做最后兜底