PYTHON · 从脚本到作品
Python 岗位实战
围绕 AI 产品工作,练习读懂代码、处理数据、调用接口和自动化,把技能要求变成可演示的作品。
如何加入现有学习计划
先完成 01–03 的编程基础,再结合全栈接口知识学习 04–06,最后用 07–08 为 AI 评测项目补齐代码与测试证据。可按每周两节安排四周;这是学习节奏建议,按实际练习情况调整。
每次先读示例、在本机运行并修改,再记录结果。页面展示代码与保存笔记,不在浏览器执行 Python。安装 Python 3 后,使用第 01 节虚拟环境中的解释器运行各节脚本。
进阶方向:完成基础后,按目标岗位补充 pandas 数据分析、SQL 联合分析或 Python Web API 开发。
正在读取学习记录…。测验正确且实践记录至少 80 字才计入;不代表能力认证。
01 环境与第一个脚本
学习目标:能独立运行并修改 Python 程序。
解释器负责执行代码,编辑器负责写代码。先确认 Python 3 可用,再建立项目自己的虚拟环境。
以下命令在项目目录的终端逐行执行。Windows 使用 py;macOS / Linux 可用 python3,虚拟环境解释器路径改为 .venv/bin/python。无需激活环境也可运行。
py --version
py -m venv .venv
# 将 print("我的第一个 Python 项目") 保存为 hello.py
.venv\Scripts\python hello.py动手任务
创建 hello.py,输出学习目标。记录 Python 版本、运行命令与输出;故意拼错 print,阅读报错行号后修复。不要把 .venv 提交到 Git。
0 / 至少 80 字 · 保存状态见页面顶部,记录随学习备份保存。
02 变量、判断与循环
学习目标:把业务规则转换成可读的程序。
字符串表示文本,数字用于计算,布尔值表示条件。缩进定义代码块;不要混用 Tab 和空格。
for 遍历数据,if 按条件分支。先用小样本手算结果,再检查脚本是否一致。
scores = [60, 85, 59]
passed = 0
for score in scores:
if score >= 60:
passed += 1
print(passed) # 2动手任务
写一个分数统计脚本,输出通过数和总数。分别输入空列表、恰好 60 分和全部未通过的数据,记录预期与实际结果。
0 / 至少 80 字 · 保存状态见页面顶部,记录随学习备份保存。
03 数据结构、函数与异常
学习目标:整理业务数据并写出可复用逻辑。
列表保存序列,字典保存字段,集合可用于去重。重复值是否应合并,要先明确业务主键。
函数用参数接收输入、return 返回结果。缺失字段与错误类型应明确处理,不要用宽泛异常捕获后假装成功。
def pass_rate(results):
if not results:
return None
if any(type(value) is not bool for value in results):
raise ValueError("每项必须是布尔值")
return sum(results) / len(results)
print(pass_rate([True, False, True]))动手任务
运行 pass_rate,加入空列表、全为 False、字符串 "False" 三种输入。说明 None 与 0 的区别,记录异常如何定位和修复。
0 / 至少 80 字 · 保存状态见页面顶部,记录随学习备份保存。
04 CSV、JSON 与数据清洗
学习目标:把原始数据整理成可检查的结果。
CSV 用于表格交换,JSON 表达结构化数据。读取时明确编码;用标准库解析,避免自己按逗号拆行。
先检查字段、空值、重复标识与数据类型。保留原始输入,输出清洗前后行数及剔除原因;数量不一致时能够追溯。
import csv
import io
import json
source = io.StringIO("id,result\n1,pass\n2,fail\n")
rows = list(csv.DictReader(source))
print(json.dumps(rows, ensure_ascii=False, indent=2))动手任务
先运行内存示例,再改为用 open("cases.csv", encoding="utf-8-sig", newline="") 读取本地 CSV。加入重复 ID、空结果、含逗号的引号字段,输出有效数据和异常清单;不得覆盖原文件。熟悉后再扩展到 pandas 分组统计。
0 / 至少 80 字 · 保存状态见页面顶部,记录随学习备份保存。
05 HTTP API 与结果校验
学习目标:读懂接口输入输出,区分网络成功与业务成功。
接口调用要明确方法、地址、请求体、状态码与超时。凭据从环境变量读取,不写入源码或学习记录。
先用固定响应练习解析。接入你有权限的真实接口时,再增加超时、HTTP 错误和 JSON 解析错误处理;写操作不能盲目重试。
import json
payload = json.loads('{"status": "ok", "items": []}')
if payload.get("status") != "ok":
raise ValueError("业务未成功")
if not isinstance(payload.get("items"), list):
raise ValueError("items 必须是列表")
print(len(payload["items"]))动手任务
运行固定响应示例,再分别替换为非法 JSON、status=error 和 items=null。随后用 urllib.request.urlopen(url, timeout=10) 访问你有权限的只读测试接口,记录状态码与字段校验结果;没有接口时明确记录真实网络部分尚未验证。
0 / 至少 80 字 · 保存状态见页面顶部,记录随学习备份保存。
06 文件自动化与可重复运行
学习目标:用脚本减少重复操作,并能解释每次执行结果。
pathlib 处理文件路径,按明确范围枚举文件。先预览操作清单,再实现写入;不把整台电脑当输入目录。
自动化要考虑重复执行、部分失败和输出覆盖。把输入、输出和日志分开,记录处理数与失败原因。
from pathlib import Path
folder = Path("input")
if not folder.is_dir():
raise FileNotFoundError("请先创建 input 文件夹并放入练习 CSV")
for path in sorted(folder.glob("*.csv")):
print("待处理:", path.name) # 只预览,不修改文件动手任务
创建 input 目录和两份练习 CSV,先预览,再实现批量统计到独立 output 目录。连续运行两次,验证不重复累计;增加损坏文件,记录失败且保留原始文件。
0 / 至少 80 字 · 保存状态见页面顶部,记录随学习备份保存。
07 用 Python 整理 AI 评测
学习目标:为已有 AI 评测实践补上可复现的数据分析。
先明确成功准则、样本来源和版本,再批量整理结果。不要把模型自己的判断直接当正确答案。
失败、超时与无法判断应单独记录。演示数据只能验证计算逻辑,不能证明真实模型效果。
cases = [{"id": "a", "result": "pass"},
{"id": "b", "result": "fail"},
{"id": "c", "result": "unknown"}]
counts = {name: 0 for name in ("pass", "fail", "unknown")}
for case in cases:
counts[case["result"]] += 1
print(counts)
print("样本数:", len(cases))动手任务
把至少 10 条人工构造的评测样本保存成 JSON,校验唯一 ID 和允许的结果值,输出各类数量、分母与失败清单。到 AI 评测工作台用相同样本核对结果,再说明样本局限。
0 / 至少 80 字 · 保存状态见页面顶部,记录随学习备份保存。
08 测试、交付与面试讲解
学习目标:用可运行作品说明 Python 能力。
把数据读取、校验、统计和输出拆成函数。测试覆盖正常输入、空输入、坏数据和重复运行。
交付源码、示例数据、运行说明、测试结果和限制。面试时能解释一段代码并现场修改,比只列工具名称更有说服力。
import unittest
from metrics import pass_rate
class RateTests(unittest.TestCase):
def test_empty(self):
self.assertIsNone(pass_rate([]))
def test_mixed(self):
self.assertEqual(pass_rate([True, False]), 0.5)
def test_invalid(self):
with self.assertRaises(ValueError):
pass_rate(["False"])
if __name__ == "__main__":
unittest.main()动手任务
将第 03 节函数保存为 metrics.py,本节代码保存为 test_metrics.py,执行 python -m unittest。完成一个“评测数据质检与报告生成器”:提交源码、匿名样本、README、异常清单和测试证据;用 3 分钟讲清业务问题、输入输出、失败处理与尚未验证部分。
0 / 至少 80 字 · 保存状态见页面顶部,记录随学习备份保存。