找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1631

积分

0

好友

215

主题
发表于 昨天 03:24 | 查看: 2| 回复: 0

在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会依次输出列表中三个任务的原始描述文本。

for循环遍历打印列表

更强大的应用在于,我们可以直接在这个循环体中调用AI函数来处理每一个任务:

# 依次将列表中的元素传给AI函数获得智能输出
for task in list_of_tasks:
    print_llm_response(task)

这段代码的执行过程是这样的:

  1. 第一次循环:task变量被赋值为列表的第一个元素(邮件任务),然后执行缩进块的代码,即print_llm_response(task),AI开始撰写邮件。
  2. 第二次循环:task变量的值被更新为列表的第二个元素(生日诗任务),AI接着创作诗歌。
  3. 第三次循环: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)
### --------------- ###

修正后:

  1. for语句末尾的冒号应为英文冒号:,而不是分号;
  2. 循环内应该打印遍历的变量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)

AI翻译菜名结果

练习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调用结合,实现任务遍历、提示词动态构建以及结果收集。这是自动化处理批量任务和数据的强大起点。如果你想了解更多实战技巧或与同行交流,欢迎来到云栈社区探讨。




上一篇:跨境SaaS收款的第一性原理:个人开发者如何掌握交易主动权
下一篇:告别单打独斗:基于Claude Code的openDevTeam AI代理团队部署指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-23 10:26 , Processed in 0.576117 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表