尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

编程启蒙|Scratch 转 Python 系列第 18 天:模块导入与常用标准库积木双向对照(AI 工具箱模块化实战)

编程启蒙|Scratch 转 Python 系列第 18 天:模块导入与常用标准库积木双向对照(AI 工具箱模块化实战) 系列定位从 Scratch 积木到 Python 代码双向对照学 AI 编程✍️作者梅雅达编程工作室本篇难度⭐⭐⭐进阶必学一、摘要本篇是 Scratch 转 Python 系列第 18 天我们要给你的代码从一整坨进化到模块化工程。学完这一篇你会明白为什么专业项目都不是一个大文件跑到底而是把 Agent、工具、存档、日志拆成独立文件import一句话就能像召唤扩展积木包一样把它们组合起来。我们会讲透 Python 五大常用标准库——random / json / os / sys / datetime并把之前散落的代码整理成一个规整的AI 工具箱模块化项目为 Day 19 调真实大模型 API 打好工程基础。二、本节课学习目标 掌握模块导入四种写法import/from...import/as别名 /from...import * 掌握五大常用标准库random / json / os / sys / datetime的核心用法 学会自定义模块把自己写的.py文件当模块被其他文件导入AI 应用场景把 Day 15-17 的 Agent 代码拆成模块化项目结构大厂标准工程雏形三、专业名词通俗释义名词通俗解释Scratch 类比模块Module一个.py文件就是一个模块一个装满自定义积木的积木包 -.sb3文件标准库Python 自带的模块安装即用不需要下载Scratch 自带的运动、外观、声音积木大类第三方库需要pip install才能用的模块Day 19 见Scratch 商店里下载的扩展积木包import导入告诉 Python“我要用某个模块”Scratch 里勾选添加扩展打开一大类积木别名as给长名字模块起小名方便打字把「颜色-饱和度-亮度」简称成「HSV」包Package一堆模块组成的文件夹里面必须有__init__.py一个装了多个积木包的收藏夹四、分模块双向对照知识点模块 1import四种写法Scratch 积木逻辑想用某类积木前先在添加扩展里勾选它勾好之后所有相关积木就出现在积木栏可以拖了。Python 源码含 Scratch 积木注释# 【Scratch积木】添加扩展「random 积木包」importrandom# 写法 1导入整个模块print(random.randint(1,10))# 使用时带模块名前缀# 【Scratch积木】添加扩展「random 积木包」并只取 randint 积木fromrandomimportrandint# 写法 2只导入指定函数print(randint(1,10))# 直接用不用带前缀# 【Scratch积木】添加扩展并起个短名importrandomasrd# 写法 3起别名print(rd.randint(1,10))# 【Scratch积木】添加扩展并把所有积木都倒进来谨慎使用fromrandomimport*# 写法 4全部导入不推荐print(randint(1,10))运行结果每次不同7 3 9 2核心易错说明写法 1 最稳写法 4 最危险容易和自己变量名撞车团队协作强烈推荐写法 1 或写法 3模块 2random随机模块AI 数据采样必备Scratch 积木逻辑「在 1 到 100 之间取随机数」这类积木全都对应random库。Python 源码含 Scratch 积木注释importrandom# 【Scratch积木】在 (1) 到 (100) 之间取随机数nrandom.randint(1,100)# 【Scratch积木】从列表中随机取一个fruitrandom.choice([苹果,香蕉,橘子])# 【Scratch积木】打乱列表顺序data[1,2,3,4,5]random.shuffle(data)# 【Scratch积木】从列表中随机取 3 个不重复的抽样samplerandom.sample(range(1,100),3)print(n,fruit,data,sample)运行结果示例42 香蕉 [3, 5, 1, 4, 2] [17, 63, 88]核心易错说明randint(a, b)是闭区间两端都包含和很多语言不同random.shuffle()是原地打乱返回值是 None别赋值模块 3json数据序列化AI 存档标配Scratch 积木逻辑Scratch 变量能直接看到值Python 想把字典/列表存到文件就得先转成 JSON 字符串。Python 源码含 Scratch 积木注释importjson data{name:小凌,skills:[Python,Scratch]}# 【Scratch积木】把字典变成 JSON 字符串sjson.dumps(data,ensure_asciiFalse)# 【Scratch积木】把 JSON 字符串变回字典backjson.loads(s)# 【Scratch积木】把字典存到文件withopen(data.json,w,encodingutf-8)asf:json.dump(data,f,ensure_asciiFalse,indent2)# 【Scratch积木】从文件读出来withopen(data.json,r,encodingutf-8)asf:loadedjson.load(f)print(s,back,loaded)运行结果{name: 小凌, skills: [Python, Scratch]} {name: 小凌, skills: [Python, Scratch]} {name: 小凌, skills: [Python, Scratch]}核心易错说明dumps/loads处理字符串dump/load不带 s处理文件对象——一个字之差别搞混中文要ensure_asciiFalse缩进要indent2存档更好读模块 4os与sys系统交互Scratch 积木逻辑Scratch 一般不需要看文件在哪、当前目录哪儿。Python 想操作文件系统就得用os想拿命令行参数就得用sys。Python 源码含 Scratch 积木注释importosimportsys# 【Scratch积木】获取当前工作目录cwdos.getcwd()# 【Scratch积木】判断文件是否存在existsos.path.exists(data.json)# 【Scratch积木】列出目录下所有文件filesos.listdir(.)# 【Scratch积木】拼路径跨平台友好pathos.path.join(data,history.json)# 【Scratch积木】获取命令行参数argssys.argv# [day18_code.py, --verbose] 之类print(cwd,exists,len(files),path,args)运行结果示例/Users/mabel/project True 12 data/history.json [day18_code.py]核心易错说明拼路径永远用os.path.join不要手写a/b/cWindows 分隔符不同sys.argv[0]是脚本本身用户传的参数从sys.argv[1]开始模块 5datetime时间处理AI 日志/存档时间戳Scratch 积木逻辑Scratch 里获取当前时间是几个专属积木Python 用datetime模块统一管理。Python 源码含 Scratch 积木注释fromdatetimeimportdatetime,timedelta# 【Scratch积木】当前 (日期时间)nowdatetime.now()# 【Scratch积木】格式化成好看的字符串snow.strftime(%Y-%m-%d %H:%M:%S)# 【Scratch积木】3 天前的时间three_days_agonow-timedelta(days3)# 【Scratch积木】字符串反解析回时间对象parseddatetime.strptime(2026-07-12 15:30:00,%Y-%m-%d %H:%M:%S)print(s,three_days_ago.strftime(%Y-%m-%d),parsed)运行结果示例2026-07-12 01:23:45 2026-07-09 2026-07-12 15:30:00核心易错说明strftime是time to stringstrptime是string to time别写反%Y是四位年%y是两位年别用错scratch积木代码说明因scratch积木里没有random随机模块json数据序列化模块os与sys系统交互模块及datetime时间处理模块只能自定义模块了五、综合实战项目AI 工具箱模块化项目把 Day 15-17 的 Agent 代码拆成一个规整的模块化项目结构体验大厂工程写法。目标目录结构ai_toolbox/ ├── main.py # 主程序入口 ├── agents/ │ ├── __init__.py │ ├── base.py # AIRole 基类 │ ├── kefu.py # 客服 Agent │ └── fanyi.py # 翻译 Agent ├── utils/ │ ├── __init__.py │ ├── storage.py # JSON 存档工具 │ └── logger.py # 日志工具 └── data/ └── history.json # 对话历史存档Scratch 积木思路把每类精灵放进独立的积木包文件把工具积木存档、日志放进utils积木包主舞台main.py只负责import各积木包 组合成完整程序增加新角色时只加新文件不动老代码Python 完整可运行代码片段# main.py配套源码 day18_code.py 单文件模拟版fromagents.baseimportAIRolefromagents.kefuimportKefuAgentfromutils.storageimportsave_history,load_historyfromutils.loggerimportlog log(程序启动)kefuKefuAgent(小助手,热情耐心)kefu.chat(你好)save_history({客服:kefu.history})运行结果预览[2026-07-12 01:30:00] 程序启动 【客服·小助手】亲亲您说的「你好」已收到正在为您处理哦 [2026-07-12 01:30:00] 存档成功 → history.json注本篇配套day18_code.py用单文件模拟多模块用类和函数分区代替真实文件夹方便直接运行真实工程结构见专栏后续文章。六、高频易错点总结❌循环导入Circular ImportA 导入 BB 又导入 APython 会报错——设计模块时要按层级划分❌from...import *覆盖内置from math import *可能覆盖你自己的pi变量团队协作强烈不建议❌json和Python 字典混淆JSON 里True/False/None分别对应 Python 的True/False/None但 JSON 文件里写的是小写true/false/null❌os.path.join不加空格os.path.join(a, b)拼出a/b或a\\b都是干净路径别自己加/❌datetime时区遗忘跨服务器时严格用datetime.utcnow()本地写日志用datetime.now()就够七、 学习提示为鼓励大家动手练习、吃透编程逻辑本篇不提供 Scratch 成品源码请对照截图亲手搭建积木完成复刻配套 Python 代码可直接复制运行学习。八、往期历史笔记编程启蒙Scratch 转 Python 系列第 1 天变量、数字运算积木双向对照AI 基础数值计算实战编程启蒙Scratch 转 Python 系列第 2 天分支判断 if 积木双向对照AI 指令条件过滤实战编程启蒙Scratch 转 Python 系列第 3 天循环重复积木双向对照AI 批量循环处理已收录 AI Agent 技术社区编程启蒙Scratch 转 Python 系列第 4 天字符串文本积木双向对照AI 提示词拼接、文本清洗实战编程启蒙Scratch 转 Python 系列第 5 天自定义积木 / 函数双向对照AI 工具封装、重复指令简化实战编程启蒙Scratch 转 Python 系列第 6 天列表、数组积木双向对照AI 底层语法 / AI 批量数据处理实战编程启蒙Scratch 转 Python 系列第 7 天猜数字大挑战·升级版实战AI 出题 二分查找最优解 完整命令行游戏 已被收录在智能体开发者社区编程启蒙Scratch 转 Python 系列第8天节奏敲击机游戏实战AI节奏谱生成实战编程启蒙Scratch 转 Python 系列第9天字典/哈希表积木双向对照AI大模型参数配置表实战编程启蒙Scratch 转 Python 系列第 10 天问答闯关游戏实战AI 题库管理 多关卡剧本编程启蒙Scratch 转 Python 系列第 11 天文件读写积木双向对照AI 训练数据存取实战编程启蒙Scratch 转 Python 系列第 12 天记忆翻牌游戏实战AI 图案主题包 存档排行榜 已被收录在2048 AI社区编程启蒙Scratch 转 Python 系列第 13 天异常处理 try/except 积木双向对照AI 接口调用容错实战编程启蒙Scratch 转 Python 系列第 14 天AI 提示词管理工具实战增删改查 存档导入 异常兜底编程启蒙Scratch 转 Python 系列第 15 天类与对象积木双向对照AI 角色类封装实战已被智能体开发者社区收录编程启蒙Scratch 转 Python 系列第 16 天继承与多态积木双向对照AI Agent 角色体系实战已被智能体开发者社区收录编程启蒙Scratch 转 Python 系列第 17 天AI 聊天机器人游戏实战AI 多角色对话 人设切换实战已被DAMO开发者矩阵收录十、下一章预告第 19 天AI API 调用入门requests JSON 大模型对接实战学了 18 天的 Python明天终于要真正调用大模型 API了requests第三方库 vsurllib标准库请求头、参数、鉴权、超时、重试JSON 请求体拼装 响应解析AI 场景调用真实大模型 APIDeepSeek/通义/扣子让你的 Agent 从假装懂变成真的会激动人心的一天别错过十一、原创声明本文为「梅雅达编程笔记」原创技术教程未经授权禁止转载、洗稿或用于商业培训。转载合作请联系作者。系列内容持续更新中欢迎收藏 CSDN 专栏「编程启蒙–scratch转python」追更
返回列表