邪修・【在WPS里学Python】丨0.8:def——用Python写一个XLOOKUP函数

Lv.2潜力创作者
👍学习从什么时候开始都不晚:我要开始学习了
不用下载, 打开WPS智能表格--PY脚本, 立即开学!
| 📢 | 前面我们已经学会: ✅ xl()读取,write_xl()写入,delete_xl()删除 ✅ DataFrame ✅ if判断 ✅ for循环 ✅ break / continue |
| 🔥 | 现在终于来到一个很重要的东西: 👉 使用def定义函数 这一章开始,你就会开始具备写功能块的能力 |
| 👋 | 一、什么是def函数?👉 def函数:“自己定义一个功能” |
| 📌 | def结构📢是不是发现: 👉 和for循环、if判断一样,都是“关键字 + 冒号 + 缩进代码块”的结构 |
| 📊 | 二、先来个对比def 和“名称管理器”有点像 还记得前面我们说过: 👉 变量 ≈ 名称管理器 👉 so得出一个粗狂结论: def ≈ 变量 ≈ 名称管理器 变量是存数据的容器 def 是自定义函数,是“能接收参数、按预设逻辑自动运转的语法指令” |
对比一下 | def | 变量 | 名称管理器 |
核心本质 | 定义代码逻辑(函数/类)的语法指令 | 存储数据的内存容器 | 表格对象的命名管理工具 |
核心作用 | 封装可复用功能,实现逻辑复用 | 存储、传递数据 | 管理命名对象,简化引用、提升操作效率 |
核心场景 | 编程中封装计算、处理逻辑,重复调用 | 编程中存用户输入、运算结果等动态数据 | 表格中存值、公式,避免复杂引用 |
| 📊 | 三、准备数据📢先写入数据: |
📊 表格:
渠道 | 数量 | 金额 |
H5 | 1000 | 2000 |
短信 | 800 | 40 |
app | 500 | 1500 |
| 📌 | 四、用Python写一个基础版的“XLOOKUP”先回忆下表格中XLOOKUP是如何使用的💡 XLOOKUP示例: 👉 意思其实是: |
| 📌 | 有没有发现? 👉 其实核心逻辑就是: ✅ for循环 ✅ if判断 ✅ break停止 |
| 💡 | 读取表格👉 DataFrame: |
| 💡 | 开始写逻辑 |
| 💡 | 调用函数(像不像XLOOKUP?)👉现在直接用函数名调用这个函数 👉 输出: 👉 ✅ 输出了正确答案: 40 |
| 📢 | 恭喜你,这一刻非常重要: 👉 你已经用Python代码“自己手搓了一个表格函数” |
| ⭐ | 五、还有一个问题📢如果查不到呢: 👉 ❌ 什么都不输出 |
| 😱 | 有点懵,为啥没有报出结果: 又没有显示正确结果,又没有报错? 到底找没找到? 是不是程序坏了? |
| 🧐 | 其实复盘一下执行轨迹就能发现,程序没坏,它只是“默默下班了”。🤫 1️⃣ for 循环老老实实把每一行都检查了一遍 2️⃣ 发现没有哪一行的 渠道 等于 "肯定查不到我" 3️⃣ if 条件一次都没触发,break 自然也没机会执行 4️⃣ 循环安静结束,函数执行完毕,屏幕一片空白。 |
| 🧐 | 加入“未找到”逻辑找到问题,就简单了,加入未找到的逻辑就行: |
| ✅ | 再次运行👉 输出: 👉 ✅ 输出了正确答案: 未找到 |
| 📢 | 现在: 👉 这个函数已经越来越像真正的“XLOOKUP”了 😎 恭喜你:刚刚“修复了一个逻辑BUG” |
| 🧐 | 再优化一下这个函数
👉 ✅ 输出了正确答案: 未找到,并且代码更简洁,运行速度更快,更易读。 |
| 📢 | 😎 这一刻: 👉 你优化了一个功能模块 虽然我们写得只是一个基础版的“XLOOKUP”,但更重要的是我们学会了自己用代码去手搓一个自己想要的功能,并且具备了修复BUG和优化代码的思维。 |
| 🎉 | 小结 & 成就感💡 ✅ 你已经: • 学会def定义函数 • 学会for+if+break组合写一个功能块 • 学会自己封装逻辑 • 自己手搓了一个“XLOOKUP”,并且修复了一个逻辑BUG,还优化了代码 🥳此时你已经可以自己创造“小工具”了,这就是很多程序最开始的样子。 |
📸 学习从什么时候开始都不晚:
✍️ 作业1
实现:
查找("H5","渠道","数量","未找到")👉 输出:
1000
✍️ 作业2(挑战)
😎如果找到H5:
不要只输出数字
👉而是输出一段文本:
H5的数量是1000
✍️ 作业3(高手挑战)
🔥查找并加入计算:
查找H5, 并计算出H5的 单价(金额/数量)👉 输出:
2