feat(python基础): 新增字典教学课程
This commit is contained in:
105
01_python基础/1_10_字典/practice.py
Normal file
105
01_python基础/1_10_字典/practice.py
Normal file
@@ -0,0 +1,105 @@
|
||||
# 第 1-10 课课堂练习:Agent 配置管理器
|
||||
#
|
||||
# 完成要求:
|
||||
# 1. 根据注释完成字典的创建、读取、修改、删除、遍历和嵌套操作。
|
||||
# 2. 使用有意义的英文蛇形变量名。
|
||||
# 3. 读取可能不存在的键时使用 get() 或先使用 in 判断。
|
||||
# 4. 删除键前确认键存在,或为 pop() 提供默认值。
|
||||
# 5. 不要删除题目注释。
|
||||
# 6. 完成后运行本文件并核对预期结果。
|
||||
|
||||
|
||||
# 练习一:创建字典 agent_config,包含以下键值对:
|
||||
# model:"gpt-5"
|
||||
# temperature:0.7
|
||||
# max_tokens:2000
|
||||
# enabled:True
|
||||
|
||||
# 练习二:输出以下信息:
|
||||
# 1. 完整字典;
|
||||
# 2. 键值对数量;
|
||||
# 3. 使用方括号读取 model;
|
||||
# 4. 使用 get() 读取 temperature。
|
||||
|
||||
# 练习三:使用 get() 读取不存在的 timeout,并提供默认值 30。
|
||||
# 将结果保存到 timeout,输出该变量。
|
||||
# 确认执行后 timeout 键仍未自动加入 agent_config。
|
||||
|
||||
# 练习四:完成以下添加和修改:
|
||||
# 1. 添加 timeout,值为 60;
|
||||
# 2. 把 temperature 修改为 0.3;
|
||||
# 3. 使用 update() 添加 retries=3,并把 max_tokens 修改为 4000。
|
||||
|
||||
# 练习五:完成以下成员判断:
|
||||
# 1. 判断是否存在 model 键,保存到 contains_model;
|
||||
# 2. 判断是否存在 timeout 键,保存到 contains_timeout;
|
||||
# 3. 判断 "gpt-5" 是否直接存在于字典键中,保存到 model_value_is_key。
|
||||
# 观察第三个结果,理解 in 默认检查键。
|
||||
|
||||
# 练习六:使用 pop() 删除 retries。
|
||||
# 将被删除的值保存到 removed_retries。
|
||||
# 为 pop() 提供默认值 None,避免键不存在时报错。
|
||||
|
||||
# 练习七:使用 in 判断 timeout 是否存在。
|
||||
# 如果存在,使用 del 删除 timeout。
|
||||
|
||||
# 练习八:分别完成三种遍历:
|
||||
# 1. 遍历并输出所有键;
|
||||
# 2. 遍历并输出所有值;
|
||||
# 3. 使用 items() 同时遍历键和值,格式为“model:gpt-5”。
|
||||
|
||||
# 练习九:创建嵌套字典 nested_config:
|
||||
# model 对应一个内部字典,包含 name="gpt-5"、temperature=0.7;
|
||||
# runtime 对应一个内部字典,包含 timeout=30、enabled=True。
|
||||
# 输出嵌套的模型名称和超时时间。
|
||||
|
||||
# 练习十:创建 Agent 列表 agents,包含两个字典:
|
||||
# 第一条:name="代码助手"、model="gpt-5"、enabled=True;
|
||||
# 第二条:name="搜索助手"、model="o3"、enabled=False。
|
||||
# 使用 for 遍历并输出每个 Agent 的名称、模型和启用状态。
|
||||
|
||||
# 练习十一:创建字典 agent_profile:
|
||||
# name="代码助手";
|
||||
# tools=["搜索", "计算"]。
|
||||
# 向 tools 列表追加 "写作",再输出工具列表。
|
||||
|
||||
# 练习十二:使用 copy() 创建 agent_config 的独立浅复制 backup_config。
|
||||
# 在 backup_config 中把 model 修改为 "o3"。
|
||||
# 分别输出两个字典,确认原字典的 model 仍为 "gpt-5"。
|
||||
|
||||
# 练习十三:使用 30 个等号输出分隔线,再输出最终报告:
|
||||
# 1. agent_config;
|
||||
# 2. timeout 的默认读取结果;
|
||||
# 3. contains_model;
|
||||
# 4. contains_timeout;
|
||||
# 5. model_value_is_key;
|
||||
# 6. removed_retries;
|
||||
# 7. nested_config;
|
||||
# 8. agents;
|
||||
# 9. agent_profile;
|
||||
# 10. backup_config。
|
||||
|
||||
|
||||
# 预期核心结果:
|
||||
# 初次 get("timeout", 30) 得到 30,但不会自动新增键;
|
||||
# 修改后的 temperature 为 0.3;
|
||||
# 修改后的 max_tokens 为 4000;
|
||||
# contains_model = True;
|
||||
# 添加 timeout 后 contains_timeout = True;
|
||||
# model_value_is_key = False;
|
||||
# removed_retries = 3;
|
||||
# timeout 最终被删除;
|
||||
# 嵌套模型名称为 gpt-5,超时时间为 30;
|
||||
# agent_profile 的 tools 包含“写作”;
|
||||
# backup_config 的模型为 o3,但 agent_config 的模型仍为 gpt-5。
|
||||
|
||||
|
||||
# 完成后进行自查:
|
||||
# 1. 方括号和 get() 是否按要求分别使用;
|
||||
# 2. get() 默认值是否没有自动写入字典;
|
||||
# 3. in 是否用于检查键;
|
||||
# 4. 删除键时是否进行了安全处理;
|
||||
# 5. items() 是否正确解包为 key 和 value;
|
||||
# 6. 嵌套字典是否使用两层键读取;
|
||||
# 7. 列表中的每个 Agent 是否使用字典表达;
|
||||
# 8. 修改 backup_config 是否没有影响 agent_config。
|
||||
Reference in New Issue
Block a user