# 第 1-5 课课堂练习:Agent 学习状态评估器 # # 完成要求: # 1. 根据注释使用 if、elif 和 else 编写条件分支。 # 2. 注意英文冒号和四个空格缩进。 # 3. 数字输入需要转换为正确类型。 # 4. 布尔状态应使用比较结果生成,不要保存成 "True" 或 "False" 字符串。 # 5. 不要删除题目注释。 # 6. 完成后使用题目末尾提供的多组数据测试程序。 # 练习一:接收用户每天学习的小时数。 # 使用 float() 转换,并保存到 daily_hours。 # 练习二:询问用户是否完成本课练习,约定输入 yes 或 no。 # 将原始输入保存到 practice_answer。 # 使用 == 比较 practice_answer 是否等于 "yes",把布尔结果保存到 practice_finished。 # 练习三:接收测验成绩,成绩范围为 0 到 100。 # 使用 float() 转换,并保存到 score。 # 练习四:使用 if...elif...else 判断成绩等级。 # 必须先判断 score 是否小于 0 或大于 100: # - 范围无效:score_level = "输入无效" # - 90 分及以上:score_level = "优秀" # - 80 分及以上:score_level = "良好" # - 60 分及以上:score_level = "合格" # - 其余有效成绩:score_level = "未通过" # 练习五:创建三个布尔变量。 # 1. score_is_valid:成绩是否处于 0 到 100 之间,请使用链式比较; # 2. score_is_passed:成绩是否大于或等于 60; # 3. learning_time_is_enough:每天学习时间是否大于或等于 1 小时。 # 练习六:判断是否可以继续下一课。 # 只有以下四个条件全部成立时,can_continue 才为 True: # - 成绩范围有效; # - 成绩通过; # - 已经完成练习; # - 每天学习时间达到 1 小时。 # 请使用 and 组合条件,把结果保存到 can_continue。 # 练习七:输出由 30 个等号组成的分隔线,再输出成绩等级。 # 练习八:使用 if...else 根据 can_continue 输出结论。 # - 可以继续:输出“所有要求均已达到,可以进入下一课。” # - 不可继续:输出“当前仍有要求未达到,请查看具体建议。” # 练习九:使用一组 if...elif...else 给出一条具体建议。 # 建议按以下优先顺序判断: # 1. 成绩范围无效:提示输入 0 到 100 之间的分数; # 2. 成绩未通过:提示复习并重新测验; # 3. 练习未完成:提示完成课堂练习; # 4. 学习时间不足:提示每天至少安排 1 小时; # 5. 以上问题都不存在:提示保持节奏继续学习。 # # 注意:这里使用 elif 是为了每次只输出当前优先级最高的一条建议。 # 练习十:使用 f-string 输出完整评估数据,至少包括: # daily_hours、practice_finished、score、score_level 和 can_continue。 # 完成后必须使用以下六组数据分别运行: # # 第一组:2.5、yes、95 # 预期:优秀,可以继续。 # # 第二组:1.5、yes、75 # 预期:合格,可以继续。 # # 第三组:0.5、yes、75 # 预期:合格,但学习时间不足,不能继续。 # # 第四组:2、no、80 # 预期:良好,但练习未完成,不能继续。 # # 第五组:2、yes、50 # 预期:未通过,不能继续。 # # 第六组:2、yes、120 # 预期:输入无效,不能继续。 # 完成后进行自查: # 1. 每个 if、elif、else 末尾是否都有英文冒号; # 2. 同一分支的代码是否统一缩进四个空格; # 3. 分数范围校验是否早于成绩等级判断; # 4. 成绩等级条件是否从高分向低分排列; # 5. can_continue 是否组合了全部四个条件; # 6. 六组测试数据是否分别进入了正确分支。