<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Python on 老张开工了</title>
    <link>/python/</link>
    <description>Recent content in Python on 老张开工了</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Fri, 03 Jul 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="/python/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>开发你的第一个 MCP Server</title>
      <link>/posts/2026/07/mcp-server-dev/</link>
      <pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate>
      <guid>/posts/2026/07/mcp-server-dev/</guid>
      <description>读完生态速览，你大概发现 30% 的需求是现成 server 满足不了的——尤其是自家业务 API和团队内部数据。本章手把手写一个：把公司内部 admin API 暴露成 MCP，让所有 harness 都能调用。&#xA;17.1 任务范围 做一个 MCP server 叫 mcp-tickets，让 Agent 能：&#xA;列出内部工单系统里的 ticket（按状态） 取一条 ticket 详情 给 ticket 加一条 internal comment 只读为主，写操作需要确认 我们用 Python 写（生态成熟，团队好上手）；TypeScript 版结构近似，章末给一行对比。&#xA;17.2 起手装环境 uv init mcp-tickets cd mcp-tickets uv add &amp;#34;mcp[cli]&amp;#34; uv add httpx pydantic mcp[cli] 是官方 Python SDK，含 stdio server 与 cli 工具。httpx 是要调内部 API，pydantic 做参数校验。&#xA;17.3 项目骨架 mcp-tickets/ ├── pyproject.toml ├── src/ │ └── mcp_tickets/ │ ├── __init__.</description>
    </item>
    <item>
      <title>Python 从入门到精通</title>
      <link>/posts/2026/05/python-course/</link>
      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/2026/05/python-course/</guid>
      <description>Python 是当今最流行、最通用的编程语言之一。无论你是想进入数据分析、Web 开发、自动化运维、人工智能还是游戏开发领域，Python 都是绝佳的起点。它的语法简洁优雅，学习曲线平缓，社区生态极其丰富——从 NASA 到 Instagram，从谷歌到 Netflix，无数组织和项目都在使用 Python。&#xA;本系列教程将从零开始，系统地带你掌握 Python 的核心知识和实战技能。从基础语法到高级特性，从面向对象编程到并发处理，从标准库到工程实践，覆盖 Python 开发的完整知识体系。&#xA;课程大纲 基础入门篇 Python 简介与开发环境搭建 变量与基本数据类型 运算符与表达式 字符串操作深入 列表与元组详解 字典与集合 条件判断与分支控制 循环结构与迭代 函数与模块篇 函数定义与参数传递 作用域、闭包与命名空间 高阶函数与 Lambda 表达式 模块与包管理 文件读写与 IO 操作 异常处理与调试 面向对象篇 类与对象基础 继承与多态 魔法方法与运算符重载 属性装饰器与 property 上下文管理器与 with 语句 迭代器与生成器 高级特性篇 装饰器深入与实践 正则表达式从入门到精通 日期与时间处理 常用标准库精讲 并发编程：多线程与多进程 异步编程与 asyncio 工程实战篇 测试入门：unittest 与 pytest 虚拟环境与依赖管理 网络请求与 API 调用 综合实战：构建命令行工具 本系列文章使用 Python 3.13+ 版本，所有代码示例均可直接运行。建议在学习过程中亲自动手敲一遍代码，这样才能真正掌握。&#xA;Summary: Python 从入门到精通，30 篇系统教程。</description>
    </item>
    <item>
      <title>Python ETL 实践</title>
      <link>/posts/2026/04/etl-python/</link>
      <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>
      <guid>/posts/2026/04/etl-python/</guid>
      <description>为什么用 Python 做 ETL？ Python 是数据工程领域最受欢迎的语言之一。原因很简单：语法简洁、生态丰富、社区庞大。对于 ETL 开发来说，Python 的优势尤其明显。&#xA;Python 拥有几乎所有数据源对应的库。连接数据库有 SQLAlchemy 和 psycopg2，处理文件有 Pandas 和 PyArrow，调用 API 有 requests 和 httpx，操作云存储有 boto3 和 google-cloud-storage。你几乎不需要从零开始写任何底层代码。&#xA;另一个关键优势是灵活性。SQL 擅长做声明式的数据转换，但遇到复杂的业务逻辑、条件分支、循环处理时，Python 的表达力远超 SQL。ETL 流程中那些脏活累活——数据清洗、异常处理、重试机制、日志记录——用 Python 写起来得心应手。&#xA;核心库速览 Pandas：数据转换的主力 Pandas 是 Python ETL 中最核心的库。它提供了 DataFrame 数据结构，可以理解为一个内存中的表格，支持各种数据操作：过滤、聚合、关联、透视、窗口函数等。&#xA;`python import pandas as pd&#xA;从 CSV 读取数据 df = pd.read_csv(&amp;ldquo;sales.csv&amp;rdquo;)&#xA;数据清洗 df = df.dropna(subset=[&amp;ldquo;amount&amp;rdquo;]) df[&amp;ldquo;amount&amp;rdquo;] = df[&amp;ldquo;amount&amp;rdquo;].clip(lower=0) # 过滤负值&#xA;数据转换 df[&amp;ldquo;order_month&amp;rdquo;] = pd.to_datetime(df[&amp;ldquo;order_date&amp;rdquo;]).dt.to_period(&amp;ldquo;M&amp;rdquo;) df[&amp;ldquo;total_price&amp;rdquo;] = df[&amp;ldquo;quantity&amp;rdquo;] * df[&amp;ldquo;unit_price&amp;rdquo;]</description>
    </item>
    <item>
      <title>Python 基础速览</title>
      <link>/posts/2025/01/python-basics/</link>
      <pubDate>Fri, 03 Jan 2025 00:00:00 +0000</pubDate>
      <guid>/posts/2025/01/python-basics/</guid>
      <description>Python 是数据分析领域最流行的编程语言。它的语法简洁清晰，学习曲线平缓，配合丰富的第三方库，可以高效地完成从数据采集到可视化呈现的全流程工作。&#xA;这篇文章不是 Python 的完整教程，而是针对数据分析场景的速览。如果你完全没有编程经验，建议结合官方教程或在线课程一起学习。&#xA;基本数据类型 Python 有几种基本数据类型，你在数据分析中会频繁用到：&#xA;# 整数 (int) age = 25 count = -100 large_number = 1_000_000 # Python 3.6+ 支持下划线分隔符 # 浮点数 (float) price = 29.99 pi = 3.14159 scientific = 1.5e-4 # 科学计数法，等于 0.00015 # 字符串 (str) name = &amp;#34;数据分析&amp;#34; description = &amp;#39;Python 入门&amp;#39; multiline = &amp;#34;&amp;#34;&amp;#34;这是多行字符串 可以跨越多行 非常方便&amp;#34;&amp;#34;&amp;#34; # 布尔值 (bool) is_active = True is_finished = False # None 类型 result = None # 表示&amp;#34;没有值&amp;#34;，类似于其他语言的 null 类型转换 # 字符串转整数 int(&amp;#34;123&amp;#34;) # 123 # 整数转字符串 str(456) # &amp;#34;456&amp;#34; # 字符串转浮点数 float(&amp;#34;3.</description>
    </item>
  </channel>
</rss>
