Project,Category,Score,FounderExperience,Status AI Chef,FoodTech,87,5,Testing MindGym,EdTech,92,3,Launched GreenFuel,Energy,76,8,Prototype CodePet,AI,95,2,Launched
Project,Category,Score,FounderExperience,Status
AI Chef,FoodTech,87,5,Testing
MindGym,EdTech,92,3,Launched
GreenFuel,Energy,76,8,Prototype
CodePet,AI,95,2,Launched
import csvf = open("startup_ideas.csv", "r")reader = csv.DictReader(f)projects = []for row in reader: projects.append(row)f.close()
import csv
f = open("startup_ideas.csv", "r")
reader = csv.DictReader(f)
projects = []
for row in reader:
projects.append(row)
f.close()
print(projects[0])
{'Project': 'AI Chef', 'Category': 'FoodTech', 'Score': '87', 'FounderExperience': '5', 'Status': 'Testing'}
selected = [] for project in projects: if int(project["Score"]) > 90 and project["Status"] == "Launched": selected.append(project)print(selected)
selected = []
for project in projects:
if int(project["Score"]) > 90 and project["Status"] == "Launched":
selected.append(project)
print(selected)
如果以后我们会读取很多不同的CSV文件,重复写这些代码就很低效。于是我们抽象出函数。在Python中,定义函数的命令为 def:
def read_csv_file(filename): with open(filename, "r") as f: reader = csv.DictReader(f) data = [] for row in reader: data.append(row) return data
def read_csv_file(filename):
with open(filename, "r") as f:
data = []
data.append(row)
return data
调用函数代码如下所示:
projects = read_csv_file("startup_ideas.csv")
你会发现,代码突然变干净了,并且对于重复的内容,可以用更简单易懂的方式呈现了。
这就是函数的价值:把行为抽象成能力。
函数有两个关键部分:
1、参数 —— 输入
def filter_by_score(data, min_score):
2、返回值 —— 输出
return result
一个完整示例如下:
def filter_by_score(data, min_score): result = [] for item in data: ifint(item["Score"]) >= min_score: result.append(item) return result
result = []
for item in data:
ifint(item["Score"]) >= min_score:
result.append(item)
调用:
top_projects = filter_by_score(projects, 90)
从产品思维看,这相当于:
定义一个接口:输入数据 + 输入规则 → 输出结果
函数本质上就是一个小型“能力模块”。
关于Return的作用和上面代码的意思,如果有看不懂的,可以复制后,让AI一行行的仔细解释。
我们再写一个更像“真实业务规则”的函数。
def filter_projects(data, min_score, min_experience): result = [] for item in data: if ( int(item["Score"]) >= min_score and int(item["FounderExperience"]) >= min_experience and item["Status"] == "Launched" ): result.append(item) return result
def filter_projects(data, min_score, min_experience):
if (
int(item["Score"]) >= min_score and
int(item["FounderExperience"]) >= min_experience and
item["Status"] == "Launched"
):
qualified = filter_projects(projects, 85, 3)
你已经在做一件非常接近真实产品逻辑的事情:用规则定义筛选标准。
这就是系统设计。
现在我们做一个更有趣的升级。
假设我们筛选出了高潜力项目:
high_potential = filter_by_score(projects, 90)
我们可以构造Prompt:
prompt = f"""Based on the following startup data: {high_potential} Write a short investment pitch summary. """
prompt = f"""
Based on the following startup data:
{high_potential}
Write a short investment pitch summary.
"""
这一步非常关键。你做的是结构化数据 → Prompt → 生成内容,这是AI产品的典型模式。
数据负责“事实”, 模型负责“表达”。
这一篇,我们完成了三个层级的跃迁:
第一层:会读取 CSV,你可以把文件变成数据对象。
第二层:会写函数,你可以把逻辑变成可复用能力。
第三层:结合AI,你可以让结构化数据变成内容生成的输入。
当你把这三者组合在一起,你已经在构建一个最小的数据智能系统。
看完这一篇,你应该能够:
1、读取CSV文件
2、理解DictReader的结构
3、筛选和处理结构化数据
4、定义带参数与返回值的函数
5、把数据流与AI结合起来
我们一直在做一件事:从“写语法”,走向“构建系统”。
在AI时代,学习一门语言,其实可以直接上手去使用。在我的文章里,没有讲特别多基础的语法以及代码结构,因为对于看不懂的内容,你完全可以复制给AI,然后让AI一行行的解释,这比我直接写出来要更高效且清晰。
AI产品是构建数据输入 → 数据清洗 → 规则筛选 → 模型生成 → 结构化输出 → 存储与复用的一个过程。而真正成熟的AI系统不是让模型回答问题。而是设计一个稳定的数据流,让模型成为其中可替换的一环。
对于产品经理来说,结构化能力,比模型能力更重要。对于AI时代的代码学习者来说,抽象能力,比语法熟练更重要。
[空框|Reframe]