在Python编程中,for循环是一个至关重要的结构,它允许你自动对列表中的所有项目重复执行相同的操作。这对于批量处理任务、操作数据集合特别有用。今天,我们将学习如何将for循环与AI大语言模型(LLM)的能力结合起来,实现任务自动化与智能内容生成。
1. 准备工作:回顾任务列表
在开始之前,我们需要回顾上节课留下的一个待办事项列表。同时,确保已加载必要的辅助函数来调用AI。
# 课前先加载必要的函数
from helper_functions import print_llm_response, get_llm_response
# 来自上一课的任务列表:
list_of_tasks = [
“给我的领导写一封简短的邮件,说明我明天的会议会迟到。”,
“为孙悟空写一首生日诗,庆祝他的1024岁生日。”,
“写一篇300字的电影评论,评论电影《哪吒之魔童降世》。”
]
print(list_of_tasks)

如果不用循环,我们得手动为列表中的每一项编写几乎相同的代码,既繁琐又容易出错。而for循环的引入,正是为了解决这种重复劳动。
2. 使用 for 循环自动化处理任务
for循环的核心思想是“遍历”:依次访问列表中的每个元素,并对它执行一段代码。其基本语法结构如下:
for + 一个变量名
in + 要遍历的列表或数据集
- 末尾加上英文冒号
:
- 接下来所有需要重复执行的代码必须缩进(通常是4个空格)
# 依次打印列表中的元素
for task in list_of_tasks:
print(task)
运行这段代码,AI会依次输出列表中三个任务的原始描述文本。

更强大的应用在于,我们可以直接在这个循环体中调用AI函数来处理每一个任务:
# 依次将列表中的元素传给AI函数获得智能输出
for task in list_of_tasks:
print_llm_response(task)
这段代码的执行过程是这样的:
- 第一次循环:
task变量被赋值为列表的第一个元素(邮件任务),然后执行缩进块的代码,即print_llm_response(task),AI开始撰写邮件。
- 第二次循环:
task变量的值被更新为列表的第二个元素(生日诗任务),AI接着创作诗歌。
- 第三次循环:
task变量再次被更新为第三个元素(影评任务),AI生成电影评论。
关键注意事项:
- 行尾的冒号
:必不可少。
- 缩进是Python区分代码块的唯一方式。所有需要在循环内重复执行的语句都必须正确缩进。
3. 进阶应用:动态构建AI提示词
for循环不仅能传递静态任务,更能用于动态构建提示词,实现批量、个性化的内容生成。例如,我们有一个中式菜肴列表,想让AI为每道菜写一段推广文案。
# 传统中式菜肴示例
chinese_dishes = [
“宫保鸡丁”,
“红烧肉”,
“麻婆豆腐”,
“酸辣汤”
]
# 遍历每一道中式菜肴并为其生成推广描述
for dish in chinese_dishes:
prompt = f“”“针对以下中式菜肴,
请提供一段富有吸引力的描述,可用于美食推广。
菜肴名称:{dish}
”“”
print_llm_response(prompt)
运行后,你将获得四段风格各异、极具吸引力的菜品描述。通过人工智能技术,我们可以快速生成大量高质量的营销内容。
更进一步,我们还可以将这些AI生成的结果保存到一个新列表中,便于后续使用或分析。这里就用到了列表的.append()方法。
# 将AI回复保存到新列表
promotional_descriptions = [] # 新建一个空列表,用于存放结果
for dish in chinese_dishes:
prompt = f“”“针对以下中式菜肴,
请提供一段富有吸引力的描述,可用于美食推广。
菜肴名称:{dish}
”“”
description = get_llm_response(prompt) # 获取AI回复,存入临时变量
promotional_descriptions.append(description) # 将回复添加到结果列表中
# 打印保存了所有菜品的宣传描述的列表
print(promotional_descriptions)
4. 常见陷阱与核心练习
陷阱:忘记缩进
这是新手最常犯的错误。请观察下面两段代码:
# 错误代码:print语句未缩进,不属于循环体
dishes = [“麻婆豆腐”, “红烧肉”, “青椒肉丝”, “溜肉段”]
for dish in dishes:
prompt = f“我最喜欢的菜是 {dish}”
print(prompt) # 这行没有缩进!
# 运行结果只会打印:我最喜欢的菜是 溜肉段
# 正确代码:print语句正确缩进,在每次循环中执行
dishes = [“麻婆豆腐”, “红烧肉”, “青椒肉丝”, “溜肉段”]
for dish in dishes:
prompt = f“我最喜欢的菜是 {dish}”
print(prompt) # 正确缩进!
# 运行结果会依次打印四个菜品

为什么?
在Python中,缩进定义了代码的从属关系。在错误的代码中,print(prompt)在循环外部,它只会在整个for循环全部执行完毕后运行一次。此时,变量prompt已经被循环的最后一次赋值覆盖为“我最喜欢的菜是 溜肉段”,所以只输出这最后一个值。
练习1:修正语法错误
下面的代码有两处错误,你能找出来并修正吗?
chinese_dishes = [“宫保鸡丁”, “红烧肉”]
### 修正以下代码 ###
for dish in chinese_dishes;
print(chinese_dishes)
### --------------- ###
修正后:
for语句末尾的冒号应为英文冒号:,而不是分号;。
- 循环内应该打印遍历的变量
dish,而不是整个列表chinese_dishes。
chinese_dishes = [“宫保鸡丁”, “红烧肉”]
for dish in chinese_dishes :
print(dish)

练习2:用AI翻译菜名
请补全下面的提示词,让AI将中文菜名翻译成英文。
chinese_dishes = [“麻婆豆腐”, “酸辣汤”]
for dish in chinese_dishes:
### 修改以下代码 ###
# 提示:你只需要在 prompt 里增加一两句话
prompt = f“”“
”“”
### --------------- ###
print_llm_response(prompt)
参考修正:
chinese_dishes = [“麻婆豆腐”, “酸辣汤”]
for dish in chinese_dishes:
prompt = f“”“翻译列表中的菜名名称为英语,菜名为{dish}”“”
print_llm_response(prompt)

练习3:数据清洗与收集
这是一个综合练习:我们有一个包含拼写错误的菜名列表,请用for循环结合AI修正每个错误,并将修正后的结果收集到一个新列表中。
# 编写代码,获取一个没有拼写错误的菜名列表
dishes_with_typos = [“Kungpao Chiken”, “Sichun Tofu”, “Sweat and Sour Pork”]
dishes_without_typos = []
for dish in dishes_with_typos:
prompt = f“”“请修正以下菜名的拼写错误,并仅返回正确的菜名:
{dish}
”“”
correct_dish = get_llm_response(prompt)
# 提示:将 correct_dish 添加到 dishes_without_typos 列表中
### 在下面编写代码 ###
dishes_without_typos.append(correct_dish)
### --------------- ###
print(dishes_without_typos)

通过以上学习和练习,你已经掌握了for循环的基本语法、理解了缩进的核心作用,并学会了如何将其与Python中的AI调用结合,实现任务遍历、提示词动态构建以及结果收集。这是自动化处理批量任务和数据的强大起点。如果你想了解更多实战技巧或与同行交流,欢迎来到云栈社区探讨。