基础用法
- Python 语法
- 注释
- 基本数据类型和操作符
- 数学运算
- 加减乘除
- 向下整除
- 除法的结果是浮点数
- 取模运算
- 幂运算
- 加减乘除
- 比较运算
- 等于/不等于
- 大于/小于
- 范围操作
- is/==
- 等于/不等于
- 布尔类型
- 首字母大写的 True/False
- 布尔运算
- True/False 等价 1/0
- 比较运算
- None/0/emptry 容器都可以转为 False
- 首字母大写的 True/False
- 字符串
- 可以用 " 或者 ’ 来创建字符串
- 字符串拼接
- 字符随机访问
- 字符串长度
- 格式化字符串 (> 3.6.0)
- 可以用 " 或者 ’ 来创建字符串
- None
- None 是对象
- 不能使用 == 比较,需要用 is
- None 是对象
- 数学运算
- 变量和基础输入输出
- 打印函数
- 简单打印
- 指定结束符,不指定则是换行
- 简单打印
- 输入
- 命名
- 没有声明,只有赋值
- 变量名是下划线格式
- 访问未赋值的变量
- 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 循环
- 异常处理
- if-elif-else
- 函数
- 使用 def 定义函数
- 使用关键字参数调用函数
- *args 接收位置参数
- **kwargs 接收关键字参数
- 返回多个值(以不带括号元祖形式)
- 修改全局作用域
- 函数是一等公民,可以作为返回值返回
- 匿名函数
- 列表推导式,用渐渐的写法,快速生成一个列表
- 构造 dict
- 使用 def 定义函数
- 模块
- 直接导入模块
- 导入模块中指定的函数
- 导入模块中所有的函数(不推荐)
- 简写模块名
- 模块就是普通的 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 版本
- 管理解释器版本
- python -m
- 注释
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,就需要先激活虚拟环境后再直接执行命令
- 安装 uv