break无法终止循环:用电消费计算脚本逻辑异常求助
修复方案
问题根因
- 周末同时输出两条消息:你的工作日时段校验逻辑和周末判断逻辑是平级的,就算匹配到周末分支执行了输出,后面的工作日校验代码依然会正常运行
- 调整缩进后重复输出6次:你把所有时段判断的
if语句都放在了for h in hora的循环内部,循环每遍历一次就会执行一遍全部条件判断,导致多次输出
调整方法
不需要额外调用特殊函数,只需要调整代码的分支嵌套结构即可:
- 优先判断是否为周末,匹配后直接输出提示并终止流程即可
- 只有非周末的分支下,再执行时段校验逻辑,单小时校验不需要套循环遍历小时列表,直接用输入的小时值做判断即可
参考代码
# 前置变量说明: # is_weekend:布尔值,标识输入日期是否为周末 # input_hour:整型,输入的查询小时,取值0-23 if is_weekend: print("Estás en el tramo valle, aprovecha para hacer lavadoras!") else: if 0 <= input_hour < 8: print("谷段时段,电价最低") elif (8 <= input_hour < 10) or (14 <= input_hour < 18) or (22 <= input_hour < 24): print("平段时段,电价中等") elif (10 <= input_hour < 14) or (18 <= input_hour < 22): print("峰段时段,电价最高")
如果你需要批量校验多个小时,只需要把整个时段判断逻辑放在循环内部即可,每个小时只会匹配到一个条件分支输出,不会出现重复问题。

内容的提问来源于stack exchange,提问作者Jose Antonio Piedehierro Arias
相关产品推荐
相关产品推荐

