<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Python on 安橙的博客</title><link>https://blog.ans20xx.com/tags/python/</link><description>Recent content in Python on 安橙的博客</description><generator>Hugo -- 0.163.3</generator><language>zh</language><lastBuildDate>Thu, 15 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.ans20xx.com/tags/python/index.xml" rel="self" type="application/rss+xml"/><item><title>Python语法汇总</title><link>https://blog.ans20xx.com/posts/backend/python%E8%AF%AD%E6%B3%95%E6%B1%87%E6%80%BB/</link><pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/backend/python%E8%AF%AD%E6%B3%95%E6%B1%87%E6%80%BB/</guid><description>&lt;h1 id="基础用法"&gt;基础用法&lt;/h1&gt;
&lt;div
class="mindmap-container"
id="mindmap-58476123"
style="width:100%; height:860px; min-height: 860px;"
&gt;&lt;/div&gt;
&lt;textarea id="mindmap-data-58476123" style="display:none;"&gt;
- 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)
- 字符串
- 可以用 &amp;#34; 或者 &amp;#39; 来创建字符串
- ![](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)
- 格式化字符串 (&amp;gt; 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 函数，查询不报错&amp;#43;指定默认值
- ![](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 析构 &amp;gt;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 &amp;lt;模块名字&amp;gt; 会去模块搜索路径找到模块，然后像主程序一样执行
- 不带 -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 &amp;gt; 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 版本
- 管理解释器版本
&lt;/textarea&gt;
&lt;h1 id="uv-安装包"&gt;uv 安装包&lt;/h1&gt;
&lt;div
class="mindmap-container"
id="mindmap-38641752"
style="width:100%; height:860px; min-height: 860px;"
&gt;&lt;/div&gt;
&lt;textarea id="mindmap-data-38641752" style="display:none;"&gt;
- 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 &amp;#34;pydantic==2.11.0&amp;#34;
- uv remove requests
- 锁定和同步
- uv lock 解析依赖并生成 uv.lock
- syncing 把锁文件里面的某个集合真正安装进项目环境
- 创建虚拟环境
- uv venv
- 管理 python 版本
- uv python
- 运行命令
- uv run
- 如果不使用 uv run，就需要先激活虚拟环境后再直接执行命令
&lt;/textarea&gt;</description></item></channel></rss>