121 lines
4.0 KiB
Python
121 lines
4.0 KiB
Python
# 第 1-9 课课堂练习:Agent 固定配置快照
|
||
#
|
||
# 完成要求:
|
||
# 1. 根据注释完成元组的创建、读取、统计、转换和解包。
|
||
# 2. 使用有意义的英文蛇形变量名。
|
||
# 3. 调用 index() 前先判断元素是否存在。
|
||
# 4. 不要尝试直接修改元组元素。
|
||
# 5. 不要删除题目注释。
|
||
# 6. 完成后运行本文件并核对预期结果。
|
||
|
||
|
||
# 练习一:创建元组 agent_config,依次保存:
|
||
# 模型名称 "gpt-5"、温度 0.7、最大长度 2000、启用状态 True。
|
||
|
||
|
||
# 练习二:创建以下两个元组:
|
||
# 1. 空元组 empty_config;
|
||
# 2. 只包含 "Python" 的单元素元组 single_tool。
|
||
# 使用 type() 输出 single_tool 的类型,确认它是 tuple。
|
||
|
||
|
||
# 练习三:输出 agent_config 的以下信息:
|
||
# 1. 完整元组;
|
||
# 2. 元素数量;
|
||
# 3. 第一个元素;
|
||
# 4. 最后一个元素。
|
||
# 读取首尾元素前先判断 agent_config 是否非空。
|
||
|
||
|
||
# 练习四:完成以下切片:
|
||
# 1. 取得前两个元素并保存到 basic_config;
|
||
# 2. 取得后两个元素并保存到 limit_config;
|
||
# 3. 反转元组并保存到 reversed_config。
|
||
|
||
|
||
# 练习五:完成成员判断和查找:
|
||
# 1. 判断 agent_config 是否包含 "gpt-5",保存到 contains_model;
|
||
# 2. 如果包含,使用 index() 保存位置到 model_index;
|
||
# 3. 如果不包含,让 model_index 保存 -1。
|
||
|
||
|
||
# 练习六:创建状态元组 status_history:
|
||
# "成功"、"失败"、"成功"、"成功"、"失败"。
|
||
# 使用 count() 统计 "成功",保存到 success_count。
|
||
|
||
|
||
# 练习七:使用 enumerate(agent_config, start=1) 遍历配置。
|
||
# 按照“1. gpt-5”这样的格式输出编号和配置值。
|
||
|
||
|
||
# 练习八:解包 agent_config。
|
||
# 分别使用 model_name、temperature、max_tokens、is_enabled 接收四个元素。
|
||
|
||
|
||
# 练习九:使用星号解包。
|
||
# 把 agent_config 的第一个元素保存到 first_setting;
|
||
# 把其余元素收集到 other_settings;
|
||
# 输出 other_settings 及其数据类型。
|
||
|
||
|
||
# 练习十:通过元组拼接创建新配置 new_config。
|
||
# 新配置的第一个元素应为 "o3",其余元素沿用 agent_config 的后三个元素。
|
||
# 不允许直接修改 agent_config。
|
||
|
||
|
||
# 练习十一:将 agent_config 转换成列表 config_list。
|
||
# 把列表中的温度修改为 0.3,再转换回元组 converted_config。
|
||
# 分别输出 agent_config 和 converted_config,确认原配置没有改变。
|
||
|
||
|
||
# 练习十二:交换两个变量:
|
||
# primary_model 初始为 "gpt-5";
|
||
# backup_model 初始为 "o3";
|
||
# 不使用第三个临时变量,完成交换并输出结果。
|
||
|
||
|
||
# 练习十三:创建元组 agent_capabilities:
|
||
# 第一个元素为 "gpt-5";
|
||
# 第二个元素为列表 ["搜索", "计算"]。
|
||
# 向内部列表追加 "写作",再输出整个元组。
|
||
# 思考:为什么元组不可变,但这个操作仍然允许?
|
||
|
||
|
||
# 练习十四:使用 30 个等号输出分隔线,再输出最终配置报告:
|
||
# 1. agent_config;
|
||
# 2. basic_config;
|
||
# 3. limit_config;
|
||
# 4. reversed_config;
|
||
# 5. contains_model;
|
||
# 6. model_index;
|
||
# 7. success_count;
|
||
# 8. 解包后的四个变量;
|
||
# 9. new_config;
|
||
# 10. converted_config;
|
||
# 11. 交换后的 primary_model 和 backup_model;
|
||
# 12. agent_capabilities。
|
||
|
||
|
||
# 预期核心结果:
|
||
# single_tool 的类型为 tuple;
|
||
# contains_model = True;
|
||
# model_index = 0;
|
||
# success_count = 3;
|
||
# other_settings 是列表;
|
||
# new_config 的模型为 o3;
|
||
# converted_config 的温度为 0.3;
|
||
# 原 agent_config 保持不变;
|
||
# 交换后 primary_model 为 o3,backup_model 为 gpt-5;
|
||
# agent_capabilities 内部列表包含“写作”。
|
||
|
||
|
||
# 完成后进行自查:
|
||
# 1. 单元素元组是否保留了逗号;
|
||
# 2. 读取首尾元素前是否判断元组非空;
|
||
# 3. index() 前是否使用 in 判断;
|
||
# 4. 解包变量数量是否与元素数量一致;
|
||
# 5. 星号变量是否得到列表;
|
||
# 6. 是否没有直接修改 agent_config;
|
||
# 7. 转换后的配置是否没有影响原配置;
|
||
# 8. 变量交换是否没有使用第三个临时变量。
|