Python语法汇总

基础用法 - Python 语法 - 注释 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/15/20260315235532706.png,201,109) - 基本数据类型和操作符 - 数学运算 - 加减乘除 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/15/20260315235714270.png,178,89) - 向下整除 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/15/20260315235843163.png,214,92) - 除法的结果是浮点数 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/15/20260315235949420.png,293,46) - 取模运算 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316000056274.png,209,66) - 幂运算 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316000211098.png,202,25) - 比较运算 - 等于/不等于 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316001342039.png,181,67) - 大于/小于 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316105440925.png,184,96) - 范围操作 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316105531617.png,249,46) - is/== - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316112323927.png,246,202) - 布尔类型 - 首字母大写的 True/False - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316000318032.png,200,46) - 布尔运算 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316000534726.png,245,113) - True/False 等价 1/0 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316000628534.png,210,76) - 比较运算 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316000935017.png,212,90) - None/0/emptry 容器都可以转为 False - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316001204139.png,211,181) - 字符串 - 可以用 " 或者 ' 来创建字符串 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316112526664.png,358,46) - 字符串拼接 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316112722887.png,187,96) - 字符随机访问 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316112810130.png,226,24) - 字符串长度 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316112920605.png,190,23) - 格式化字符串 (> 3.6.0) - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316113057125.png,547,49) - None - None 是对象 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316113321824.png,154,26) - 不能使用 == 比较,需要用 is - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316113426225.png,242,49) - 变量和基础输入输出 - 打印函数 - 简单打印 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316113544803.png,278,27) - 指定结束符,不指定则是换行 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316113645979.png,209,114) - 输入 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316114307175.png,299,89) - 命名 - 没有声明,只有赋值 - 变量名是下划线格式 - 访问未赋值的变量 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316114450209.png,597,136) - if 表达式,类似于 ?: 三值判断 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316114816098.png,330,24) - 集合 - 列表 - 定义列表 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316114928797.png,125,46) - 列表追加值 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316115021752.png,115,92) - 列表移除值(尾部) - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316115103804.png,157,70) - 下标访问 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316115210787.png,146,115) - 数组越界 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316115340638.png,400,103) - 切片操作 [start, end) (li[start:end:step]) - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316115742576.png,224,223) - 深拷贝切片 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316202146343.png,204,67) - 删除指定位置元素 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316202229279.png,160,68) - 移除第一个出现的位置 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316202331306.png,541,179) - 在指定下标插入一个元素 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316202514471.png,242,72) - 找到第一个匹配元素的下标 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316202607808.png,546,154) - 拼接列表 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316202728916.png,300,117) - 元素是否在列表中 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316202814046.png,148,67) - 列表长度 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316203214106.png,171,45) - 列表乘法 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316235419653.png,216,20) - 元祖 - 不可修改的列表 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316203359339.png,541,164) - 长度为 1 的元祖必须以 , 结尾 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316203601485.png,290,70) - 类似列表的操作 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316203857219.png,244,116) - 元组解构 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316204048571.png,206,45) - 扩展解构 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316204206294.png,226,47) - 元组创建时可以不带括号 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316204428472.png,154,91) - 交换两个元素 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316221128190.png,164,91) - 字典 - 创建字典 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316221220436.png,222,47) - 字典 key 需要是不可变对象 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316221326550.png,536,138) - 查询某个 key 的值 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316221408802.png,175,50) - 列出所有 key 的值 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316221612060.png,360,50) - 列出所有 value 的值 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316221543336.png,332,49) - 判断 key 是否存在 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316221657339.png,231,74) - 查询不存在的 key - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316222350530.png,540,141) - get 函数,查询不报错+指定默认值 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316222502641.png,345,91) - 向 dict 添加值 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316222609632.png,450,113) - 删除 dict 的值 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316222646295.png,219,73) - dict 析构 >3.5 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316222802326.png,370,70) - Set - 初始化 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316222904962.png,165,67) - set 的值不可变 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316222949791.png,542,136) - set 添加值 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316223037884.png,193,75) - 判断元素是否在 set 中 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316223126357.png,202,49) - 控制语句 - if-elif-else - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316223246913.png,262,155) - for-遍历 list - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316223347612.png,345,49) - range 生成 [0,num) 可迭代数字 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316223459815.png,249,46) - 指定开始/结束/步长的 range - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316223553258.png,231,51) - 同时遍历列表的下标和值 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316223658560.png,275,120) - while 循环 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316223813096.png,110,164) - 异常处理 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316224246522.png,289,273) - 函数 - 使用 def 定义函数 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316224445170.png,219,99) - 使用关键字参数调用函数 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316224952315.png,230,92) - *args 接收位置参数 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316225125132.png,253,114) - **kwargs 接收关键字参数 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316225228888.png,319,115) - 返回多个值(以不带括号元祖形式) - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316233206784.png,184,159) - 修改全局作用域 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316233418994.png,255,387) - 函数是一等公民,可以作为返回值返回 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316233650659.png,232,133) - 匿名函数 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316234128203.png,458,50) - 列表推导式,用渐渐的写法,快速生成一个列表 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316234430610.png,387,47) - 构造 dict - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316234550464.png,282,46) - 模块 - 直接导入模块 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316234855919.png,221,95) - 导入模块中指定的函数 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316234934024.png,214,95) - 导入模块中所有的函数(不推荐) - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316235018757.png,222,97) - 简写模块名 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/16/20260316235103563.png,238,96) - 模块就是普通的 python 文件,模块名就是文件名 - 如果本地文件夹有 math.py 它会优先内置的 math.py 加载 - 类 - 创建类 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317000702750.png,500,700) - 使用类 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317112935447.png,382,602) - 继承 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317114713991.png,280,702) - 迭代器/可迭代对象 - 可迭代对象:能用来 for 遍历的对象 - 迭代器,能被 next() 取值的对象 - 生成器 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317152213345.png,189,159) - 装饰器 - 在不改变原函数的前提下,给函数包一层,从而增强它的功能 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317152711432.png,240,316) - 类型系统 - 类型标注 - 在代码里面把参数、返回值、变量等期望是什么类型写出来 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317153133058.png,247,71) - 类型是期望类型,不会默认强制检查,只是为了让人和工具看的更准确 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317153234494.png,363,115) - 容器类型标注 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317153438471.png,303,74) - 可选类型 None - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317153727222.png,218,32) - 多种类型 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317153840957.png,346,124) - Any 类型,不确定类型 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317153925706.png,118,35) - 函数没有返回值 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317154003441.png,147,42) - 泛型 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317154103930.png,253,108) - 类型别名 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317154201801.png,237,55) - 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 - ![](https://an-img.oss-cn-hangzhou.aliyuncs.com/2026/03/17/20260317165009573.png,442,46) - 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,就需要先激活虚拟环境后再直接执行命令