基础用法 - Python 语法 - 注释 -  - 基本数据类型和操作符 - 数学运算 - 加减乘除 -  - 向下整除 -  - 除法的结果是浮点数 -  - 取模运算 -  - 幂运算 -  - 比较运算 - 等于/不等于 -  - 大于/小于 -  - 范围操作 -  - is/== -  - 布尔类型 - 首字母大写的 True/False -  - 布尔运算 -  - True/False 等价 1/0 -  - 比较运算 -  - None/0/emptry 容器都可以转为 False -  - 字符串 - 可以用 " 或者 ' 来创建字符串 -  - 字符串拼接 -  - 字符随机访问 -  - 字符串长度 -  - 格式化字符串 (> 3.6.0) -  - None - None 是对象 -  - 不能使用 == 比较,需要用 is -  - 变量和基础输入输出 - 打印函数 - 简单打印 -  - 指定结束符,不指定则是换行 -  - 输入 -  - 命名 - 没有声明,只有赋值 - 变量名是下划线格式 - 访问未赋值的变量 -  - if 表达式,类似于 ?: 三值判断 -  - 集合 - 列表 - 定义列表 -  - 列表追加值 -  - 列表移除值(尾部) -  - 下标访问 -  - 数组越界 -  - 切片操作 [start, end) (li[start:end:step]) -  - 深拷贝切片 -  - 删除指定位置元素 -  - 移除第一个出现的位置 -  - 在指定下标插入一个元素 -  - 找到第一个匹配元素的下标 -  - 拼接列表 -  - 元素是否在列表中 -  - 列表长度 -  - 列表乘法 -  - 元祖 - 不可修改的列表 -  - 长度为 1 的元祖必须以 , 结尾 -  - 类似列表的操作 -  - 元组解构 -  - 扩展解构 -  - 元组创建时可以不带括号 -  - 交换两个元素 -  - 字典 - 创建字典 -  - 字典 key 需要是不可变对象 -  - 查询某个 key 的值 -  - 列出所有 key 的值 -  - 列出所有 value 的值 -  - 判断 key 是否存在 -  - 查询不存在的 key -  - get 函数,查询不报错+指定默认值 -  - 向 dict 添加值 -  - 删除 dict 的值 -  - dict 析构 >3.5 -  - Set - 初始化 -  - set 的值不可变 -  - set 添加值 -  - 判断元素是否在 set 中 -  - 控制语句 - if-elif-else -  - for-遍历 list -  - range 生成 [0,num) 可迭代数字 -  - 指定开始/结束/步长的 range -  - 同时遍历列表的下标和值 -  - while 循环 -  - 异常处理 -  - 函数 - 使用 def 定义函数 -  - 使用关键字参数调用函数 -  - *args 接收位置参数 -  - **kwargs 接收关键字参数 -  - 返回多个值(以不带括号元祖形式) -  - 修改全局作用域 -  - 函数是一等公民,可以作为返回值返回 -  - 匿名函数 -  - 列表推导式,用渐渐的写法,快速生成一个列表 -  - 构造 dict -  - 模块 - 直接导入模块 -  - 导入模块中指定的函数 -  - 导入模块中所有的函数(不推荐) -  - 简写模块名 -  - 模块就是普通的 python 文件,模块名就是文件名 - 如果本地文件夹有 math.py 它会优先内置的 math.py 加载 - 类 - 创建类 -  - 使用类 -  - 继承 -  - 迭代器/可迭代对象 - 可迭代对象:能用来 for 遍历的对象 - 迭代器,能被 next() 取值的对象 - 生成器 -  - 装饰器 - 在不改变原函数的前提下,给函数包一层,从而增强它的功能 -  - 类型系统 - 类型标注 - 在代码里面把参数、返回值、变量等期望是什么类型写出来 -  - 类型是期望类型,不会默认强制检查,只是为了让人和工具看的更准确 -  - 容器类型标注 -  - 可选类型 None -  - 多种类型 -  - Any 类型,不确定类型 -  - 函数没有返回值 -  - 泛型 -  - 类型别名 -  - python 命令 - python -m - 把一个模块当成程序来运行 - python -m <模块名字> 会去模块搜索路径找到模块,然后像主程序一样执行 - 不带 -m 给的是一个文件,-m 给的是一个模块名 - pip 安装 - python -m pip --version 查看版本 - python -m pip install requests 安装一个包 - python -m pip install requests==2.31.0 安装指定版本的包 - python -m pip install --upgrade requests 升级一个包 - python -m pip list 查看已经安装的包 - python -m pip freeze > requirements.txt 导出当前环境依赖 - python -m pip install -r requirements.txt 按依赖文件安装 - python -m pip uninstall numpy 卸载软件包 - python -m pip install -i https://mirrors.aliyun.com/pypi/simple/ requests 临时配置镜像 - python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ 永久配置镜像 - python -m pip config list 查看配置 - pip 配置文件 - ~/.pip/pip.conf -  - venv - 给某个 python 项目创建要给独立的虚拟环境 - 每个项目都有独立的 Python 包、pip 安装记录、依赖版本 - 创建虚拟环境 - python -m venv .venv - 在当前目录创建一个 .venv 的虚拟环境文件夹 - 激活虚拟环境 - source .venv/bin/activate - 虚拟环境安装包 - python -m pip install requests - 退出虚拟环境 - deactive - 解决的问题 - 同一个 Python 版本下 - 不同项目依赖隔离 - pyenv/conda - 安装多个 Python 版本 - 管理解释器版本 uv 安装包 - uv - 安装 uv - curl -LsSf https://astral.sh/uv/install.sh | sh - uv --version - uv 创建项目 - uv init myapp - 项目关键文件 - pyproject.toml:项目元数据与依赖声明 - uv.lock:锁文件,保证解析结果可以复现 - .venv:项目虚拟环境 - .python-version:项目使用的版本约束 - 依赖管理 - uv add requests - uv add "pydantic==2.11.0" - uv remove requests - 锁定和同步 - uv lock 解析依赖并生成 uv.lock - syncing 把锁文件里面的某个集合真正安装进项目环境 - 创建虚拟环境 - uv venv - 管理 python 版本 - uv python - 运行命令 - uv run - 如果不使用 uv run,就需要先激活虚拟环境后再直接执行命令