Files
PythonLearn/01_python基础/1_5_条件判断/practice.py
2026-07-22 16:42:56 +08:00

90 lines
3.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第 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. 六组测试数据是否分别进入了正确分支。